[mythtv-users] [mythtv] Experimental Android TV "leanback" MythTV frontend

OpenMedia Support support at openmedia.co.nz
Wed Aug 28 09:15:55 UTC 2019


> On Wed, Aug 21, 2019 at 03:17:46PM -0400, Peter Bennett wrote:
>> I am developing a pure android application for Android TV devices called
>> android-MythTV-Leanfront.
>>
>> It uses the android TV leanback user interface as used by other apps
>> such as
>> youtube, prime video, etc. to play MythTV recordings.
>>
>> It supports 4K resolution video at 50 fps and voice search, which are
>> not
>> working on mythfrontend for android. Also it supports surround sound.
>>
>> It does not yet support many of the important features of Mythfrontend,
>> and
>> some features it may never support.
>>
>> See https://github.com/bennettpeter/android-MythTV-Leanfront for more
>> details
>
> I forgot to add this in my other email.  When I run leanfront, all it
> is crash.  This is with your pre-built package.  After I enter my
> backend's IP address and exit the settings, leanfront exits back to
> the Android, home screen after a few seconds.  After that, every
> launch attempt immediately returns to the Android, home screen.  I can
> provide an adb log if you like.

I've just tried this out on my FireTV (4k pendant version) and it also
crashes


08-28 04:13:59.146 21743 21743 I art     : Rejecting re-init on
previously-failed class
java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>:
java.lang.NoClassDefFoundError: Failed resolution of:
Landroid/view/View$OnUnhandledKeyEventListener;
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.core.view.ViewCompat.setZ(android.view.View, float)
(ViewCompat.java:2905)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.widget.SearchOrbView.setSearchOrbZ(float)
(SearchOrbView.java:152)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.widget.SearchOrbView.<init>(android.content.Context,
android.util.AttributeSet, int) (SearchOrbView.java:206)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.widget.SearchOrbView.<init>(android.content.Context,
android.util.AttributeSet) (SearchOrbView.java:160)
08-28 04:13:59.146 21743 21743 I art     :   at java.lang.Object
java.lang.reflect.Constructor.newInstance0!(java.lang.Object[])
(Constructor.java:-2)
08-28 04:13:59.146 21743 21743 I art     :   at java.lang.Object
java.lang.reflect.Constructor.newInstance(java.lang.Object[])
(Constructor.java:430)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createView(java.lang.String, java.lang.String,
android.util.AttributeSet) (LayoutInflater.java:645)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet,
boolean) (LayoutInflater.java:787)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(LayoutInflater.java:727)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser,
android.view.View, android.content.Context, android.util.AttributeSet,
boolean) (LayoutInflater.java:858)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser,
android.view.ViewGroup, boolean) (LayoutInflater.java:492)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean)
(LayoutInflater.java:426)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(int, android.view.ViewGroup)
(LayoutInflater.java:377)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.widget.TitleView.<init>(android.content.Context,
android.util.AttributeSet, int) (TitleView.java:106)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.widget.TitleView.<init>(android.content.Context,
android.util.AttributeSet) (TitleView.java:99)
08-28 04:13:59.146 21743 21743 I art     :   at java.lang.Object
java.lang.reflect.Constructor.newInstance0!(java.lang.Object[])
(Constructor.java:-2)
08-28 04:13:59.146 21743 21743 I art     :   at java.lang.Object
java.lang.reflect.Constructor.newInstance(java.lang.Object[])
(Constructor.java:430)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createView(java.lang.String, java.lang.String,
android.util.AttributeSet) (LayoutInflater.java:645)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet,
boolean) (LayoutInflater.java:787)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(LayoutInflater.java:727)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser,
android.view.ViewGroup, boolean) (LayoutInflater.java:495)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean)
(LayoutInflater.java:426)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.leanback.app.BrandedSupportFragment.onInflateTitleView(android.view.LayoutInflater,
android.view.ViewGroup, android.os.Bundle)
(BrandedSupportFragment.java:70)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.leanback.app.BrandedSupportFragment.installTitleView(android.view.LayoutInflater,
android.view.ViewGroup, android.os.Bundle)
(BrandedSupportFragment.java:85)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.leanback.app.BrowseSupportFragment.onCreateView(android.view.LayoutInflater,
android.view.ViewGroup, android.os.Bundle)
(BrowseSupportFragment.java:1297)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.fragment.app.Fragment.performCreateView(android.view.LayoutInflater,
android.view.ViewGroup, android.os.Bundle) (Fragment.java:2439)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.fragment.app.FragmentManagerImpl.ensureInflatedFragmentView(androidx.fragment.app.Fragment)
(FragmentManager.java:1689)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.fragment.app.FragmentManagerImpl.moveToState(androidx.fragment.app.Fragment,
int, int, int, boolean) (FragmentManager.java:1431)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.fragment.app.FragmentManagerImpl.moveToState(androidx.fragment.app.Fragment)
(FragmentManager.java:1684)
08-28 04:13:59.146 21743 21743 I art     :   at void
androidx.fragment.app.FragmentManagerImpl.addFragment(androidx.fragment.app.Fragment,
boolean) (FragmentManager.java:1930)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.fragment.app.FragmentManagerImpl.onCreateView(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(FragmentManager.java:3745)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.fragment.app.FragmentController.onCreateView(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(FragmentController.java:120)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(FragmentActivity.java:405)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
androidx.fragment.app.FragmentActivity.onCreateView(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(FragmentActivity.java:387)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet,
boolean) (LayoutInflater.java:777)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.createViewFromTag(android.view.View,
java.lang.String, android.content.Context, android.util.AttributeSet)
(LayoutInflater.java:727)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser,
android.view.ViewGroup, boolean) (LayoutInflater.java:495)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean)
(LayoutInflater.java:426)
08-28 04:13:59.146 21743 21743 I art     :   at android.view.View
android.view.LayoutInflater.inflate(int, android.view.ViewGroup)
(LayoutInflater.java:377)
08-28 04:13:59.146 21743 21743 I art     :   at void
com.android.internal.policy.PhoneWindow.setContentView(int)
(PhoneWindow.java:419)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.Activity.setContentView(int) (Activity.java:2420)
08-28 04:13:59.146 21743 21743 I art     :   at void
org.mythtv.leanfront.ui.MainActivity.onCreate(android.os.Bundle)
(MainActivity.java:38)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6689)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.Instrumentation.callActivityOnCreate(android.app.Activity,
android.os.Bundle) (Instrumentation.java:1118)
08-28 04:13:59.146 21743 21743 I art     :   at android.app.Activity
android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord,
android.content.Intent) (ActivityThread.java:2634)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord,
android.content.Intent, java.lang.String) (ActivityThread.java:2748)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.ActivityThread.-wrap12(android.app.ActivityThread,
android.app.ActivityThread$ActivityClientRecord, android.content.Intent,
java.lang.String) (ActivityThread.java:-1)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.ActivityThread$H.handleMessage(android.os.Message)
(ActivityThread.java:1488)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.os.Looper.loop() (Looper.java:154)
08-28 04:13:59.146 21743 21743 I art     :   at void
android.app.ActivityThread.main(java.lang.String[])
(ActivityThread.java:6188)
08-28 04:13:59.146 21743 21743 I art     :   at java.lang.Object
java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[])
(Method.java:-2)
08-28 04:13:59.146 21743 21743 I art     :   at void
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()
(ZygoteInit.java:911)
08-28 04:13:59.146 21743 21743 I art     :   at void
com.android.internal.os.ZygoteInit.main(java.lang.String[])
(ZygoteInit.java:801)
08-28 04:13:59.146 21743 21743 I art     : Caused by:
java.lang.ClassNotFoundException: Didn't find class
"android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip
file "/system/priv-app/MetricsApi/MetricsApi.apk", zip file
"/data/app/org.mythtv.leanfront-1/base.apk"],nativeLibraryDirectories=[/data/app/org.mythtv.leanfront-1/lib/arm,
/system/priv-app/MetricsApi/MetricsApi.apk!/lib/armeabi-v7a,
/system/priv-app/MetricsApi/lib/arm,
/system/priv-app/MetricsApi/MetricsApi.apk!/lib/armeabi, /system/lib,
/vendor/lib]]




More information about the mythtv-users mailing list