--- client: Jellyfin for Android TV client_version: 0.16.7 client_repository: https://github.com/jellyfin/jellyfin-androidtv type: crash_report format: markdown --- ### Logs ***Stack Trace***: ```log java.lang.RuntimeException: Unable to resume activity {org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4446) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4478) at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7668) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onResume(CustomPlaybackOverlayFragment.java:730) at androidx.fragment.app.Fragment.performResume(Fragment.java:3205) at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:646) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:296) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034) at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:2966) at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:285) at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:333) at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:322) at android.app.Activity.performResume(Activity.java:8160) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4436) ... 11 more ``` ***Logcat***: ```log 04-14 22:52:40.194 I/ActivityThemeExtensionsKt(19550): Applying theme EMERALD 04-14 22:52:40.210 D/ACRA (19550): onActivityCreated class org.jellyfin.androidtv.ui.browsing.MainActivity 04-14 22:52:40.215 W/LeanbackOverlayFragment(19550): PlaybackController is null, skipping initialization. 04-14 22:52:40.216 D/NavigationRepositoryImpl(19550): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.home.HomeFragment (Kotlin reflection is not available), arguments=Bundle[{}]) (via init) 04-14 22:52:40.220 W/lyfin.androidt(19550): Accessing hidden method Landroid/view/KeyEvent;->isMediaSessionKey(I)Z (blacklist, linking, denied) 04-14 22:52:40.223 D/org.jellyfin.sdk.api.sockets.SocketInstance(19550): Reconnect requested 04-14 22:52:40.223 I/org.jellyfin.sdk.api.sockets.SocketInstance(19550): Reconnecting 04-14 22:52:40.223 D/org.jellyfin.sdk.api.sockets.helper.ReconnectHelper(19550): Notified about reconnect, attempts=1 04-14 22:52:40.225 D/org.jellyfin.sdk.api.sockets.SocketInstance(19550): Reconnect requested 04-14 22:52:40.225 I/chatty (19550): uid=10092(org.jellyfin.androidtv) DefaultDispatch identical 4 lines 04-14 22:52:40.225 D/org.jellyfin.sdk.api.sockets.SocketInstance(19550): Reconnect requested 04-14 22:52:40.226 I/ExoPlayerImpl(19550): Init 7062fb7 [AndroidXMedia3/1.3.0] [sif, SHIELD Android TV, NVIDIA, 30] 04-14 22:52:40.269 I/org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession(19550): WebSocket has opened 04-14 22:52:40.269 I/DefaultRenderersFactory(19550): Loaded FfmpegAudioRenderer. 04-14 22:52:40.270 D/org.jellyfin.sdk.api.sockets.helper.ReconnectHelper(19550): Notified about connect, attempts reset 04-14 22:52:40.279 D/DefaultPlayerQueueState(19550): Queue changed, setting index to 0 04-14 22:52:40.282 D/CompatibilityChangeReporter(19550): Compat change id reported: 147798919; UID 10092; state: ENABLED 04-14 22:52:40.290 D/NavigationRepositoryImpl(19550): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.home.HomeFragment (Kotlin reflection is not available), arguments=Bundle[{}]) (via reset) 04-14 22:52:40.294 I/org.jellyfin.sdk.api.client.KtorClient(19550): GET http://192.168.1.146:8096/LiveTv/Programs/Recommended?userId=3cc77600-8bad-41c3-8f8c-e8f11150986f&limit=1&isAiring=true&imageTypeLimit=1&enableTotalRecordCount=false 04-14 22:52:40.298 I/HomeRowsFragment(19550): Updating audio queue in HomeFragment (onQueueStatusChanged) 04-14 22:52:40.303 W/lyfin.androidt(19550): Reducing the number of considered missed Gc histogram windows from 117 to 100 04-14 22:52:40.307 I/org.jellyfin.sdk.api.client.KtorClient(19550): GET http://192.168.1.146:8096/DisplayPreferences/db4c1708cbb5dd1676284a40f2950aba?userId=3cc77600-8bad-41c3-8f8c-e8f11150986f&client=jellyfin-androidtv 04-14 22:52:40.317 I/org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession(19550): Receiving (raw) message {"MessageType":"ForceKeepAlive","MessageId":"00000000000000000000000000000000","Data":60} 04-14 22:52:40.323 I/org.jellyfin.sdk.api.sockets.helper.KeepAliveHelper(19550): Using a KeepAlive message delay of 30 seconds 04-14 22:52:40.324 I/org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession(19550): Sending (raw) message {"MessageType":"KeepAlive","Data":{}} 04-14 22:52:40.327 I/org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession(19550): Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"93145672adc94147aee779461e47d117"} 04-14 22:52:40.336 D/BrowseGridFragment(19550): numCardsScreen <0> 04-14 22:52:40.362 D/ACRA (19550): onActivityStarted class org.jellyfin.androidtv.ui.browsing.MainActivity 04-14 22:52:40.376 I/android_os_HwBinder(19550): HwBinder: Starting thread pool for getting: vendor.nvidia.hardware.cpl.service_common@1.0::INvCplHalCommonService/default 04-14 22:52:40.444 W/PhoneWindow(19550): Previously focused view reported id 2131427479 during save, but can't be found during restore. 04-14 22:52:40.445 D/ACRA (19550): onActivityResumed class org.jellyfin.androidtv.ui.browsing.MainActivity 04-14 22:52:40.446 D/AndroidRuntime(19550): Shutting down VM 04-14 22:52:40.448 E/AndroidRuntime(19550): FATAL EXCEPTION: main 04-14 22:52:40.448 E/AndroidRuntime(19550): Process: org.jellyfin.androidtv, PID: 19550 04-14 22:52:40.448 E/AndroidRuntime(19550): java.lang.RuntimeException: Unable to resume activity {org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4446) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4478) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.os.Handler.dispatchMessage(Handler.java:106) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.os.Looper.loop(Looper.java:223) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.ActivityThread.main(ActivityThread.java:7668) 04-14 22:52:40.448 E/AndroidRuntime(19550): at java.lang.reflect.Method.invoke(Native Method) 04-14 22:52:40.448 E/AndroidRuntime(19550): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 04-14 22:52:40.448 E/AndroidRuntime(19550): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 04-14 22:52:40.448 E/AndroidRuntime(19550): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference 04-14 22:52:40.448 E/AndroidRuntime(19550): at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onResume(CustomPlaybackOverlayFragment.java:730) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.Fragment.performResume(Fragment.java:3205) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:646) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:296) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:2966) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:285) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:333) 04-14 22:52:40.448 E/AndroidRuntime(19550): at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:322) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.Activity.performResume(Activity.java:8160) 04-14 22:52:40.448 E/AndroidRuntime(19550): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4436) 04-14 22:52:40.448 E/AndroidRuntime(19550): ... 11 more 04-14 22:52:40.448 E/ACRA (19550): ACRA caught a RuntimeException for org.jellyfin.androidtv 04-14 22:52:40.448 E/ACRA (19550): java.lang.RuntimeException: Unable to resume activity {org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference 04-14 22:52:40.448 E/ACRA (19550): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4446) 04-14 22:52:40.448 E/ACRA (19550): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4478) 04-14 22:52:40.448 E/ACRA (19550): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 04-14 22:52:40.448 E/ACRA (19550): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) 04-14 22:52:40.448 E/ACRA (19550): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 04-14 22:52:40.448 E/ACRA (19550): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067) 04-14 22:52:40.448 E/ACRA (19550): at android.os.Handler.dispatchMessage(Handler.java:106) 04-14 22:52:40.448 E/ACRA (19550): at android.os.Looper.loop(Looper.java:223) 04-14 22:52:40.448 E/ACRA (19550): at android.app.ActivityThread.main(ActivityThread.java:7668) 04-14 22:52:40.448 E/ACRA (19550): at java.lang.reflect.Method.invoke(Native Method) 04-14 22:52:40.448 E/ACRA (19550): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 04-14 22:52:40.448 E/ACRA (19550): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 04-14 22:52:40.448 E/ACRA (19550): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.jellyfin.androidtv.ui.playback.PlaybackController.hasFragment()' on a null object reference 04-14 22:52:40.448 E/ACRA (19550): at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onResume(CustomPlaybackOverlayFragment.java:730) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.Fragment.performResume(Fragment.java:3205) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:646) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:296) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:2966) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:285) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:333) 04-14 22:52:40.448 E/ACRA (19550): at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:322) 04-14 22:52:40.448 E/ACRA (19550): at android.app.Activity.performResume(Activity.java:8160) 04-14 22:52:40.448 E/ACRA (19550): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4436) 04-14 22:52:40.448 E/ACRA (19550): ... 11 more 04-14 22:52:40.448 D/ACRA (19550): Building report 04-14 22:52:40.449 D/ACRA (19550): Starting collectors with priority FIRST 04-14 22:52:40.449 D/ACRA (19550): Calling collector org.acra.collector.DropBoxCollector 04-14 22:52:40.450 D/ACRA (19550): Collector org.acra.collector.DropBoxCollector completed 04-14 22:52:40.450 D/ACRA (19550): Calling collector org.acra.collector.LogCatCollector 04-14 22:52:40.450 D/ACRA (19550): Calling collector org.acra.collector.StacktraceCollector 04-14 22:52:40.451 D/ACRA (19550): Collector org.acra.collector.StacktraceCollector completed 04-14 22:52:40.458 D/ACRA (19550): Retrieving logcat output (buffer:default)... ``` ### App information ***App version***: `0.16.7` (`160799`) ***Package name***: `org.jellyfin.androidtv` ***Build***: ```json {"BOARD":"sif","BOOTLOADER":"32.00.2019.50-t210-69ebfcbe","BRAND":"NVIDIA","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"sif","DISPLAY":"RQ1A.210105.003.7825199_3167.5736","FINGERPRINT":"NVIDIA\/sif\/sif:11\/RQ1A.210105.003\/7825199_3167.5736:user\/release-keys","HARDWARE":"sif","HOST":"mobile-u64-5306-d6000","ID":"RQ1A.210105.003","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"NVIDIA","MODEL":"SHIELD Android TV","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"sif","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1665975946000,"TYPE":"user","UNKNOWN":"unknown","USER":"NVIDIA","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"7825199_3167.5736","PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"11","RELEASE_OR_CODENAME":"11","SDK":"30","SDK_INT":30,"SECURITY_PATCH":"2022-04-05"}} ``` ***Build config***: ```json {"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":160799,"VERSION_NAME":"0.16.7"} ``` ### Device information ***Android version***: `11` ***Device brand***: `NVIDIA` ***Device product***: `sif` ***Device model***: `SHIELD Android TV` ### Crash information ***Start time***: `2024-04-14T22:33:06.531+02:00` ***Crash time***: `2024-04-14T22:52:40.495+02:00`