--- client: Jellyfin for Android TV client_version: 0.15.12 client_repository: https://github.com/jellyfin/jellyfin-androidtv type: crash_report format: markdown --- ### Logs ***Stack Trace***: ```log java.lang.RuntimeException: Unable to start activity ComponentInfo{org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.MainActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2495) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2563) at android.app.ActivityThread.access$900(ActivityThread.java:168) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1336) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5619) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.NullPointerException at org.jellyfin.androidtv.data.querying.StdItemQuery.(StdItemQuery.kt:23) at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.setupQueries(BrowseGridFragment.java:547) at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.onCreate(BrowseGridFragment.java:177) at androidx.fragment.app.Fragment.performCreate(Fragment.java:3090) at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:121) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1433) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2977) at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2884) at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252) at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:220) at org.jellyfin.androidtv.ui.browsing.MainActivity.onCreate(MainActivity.kt:40) at android.app.Activity.performCreate(Activity.java:6022) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2448) ... 10 more ``` ***Logcat***: ```log 09-18 10:42:29.416 W/art (13269): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[67,tid=13762,Native,Thread*=0xb9592f38,peer=0x133360a0,"opensles"] 09-18 10:42:29.544 W/art (13269): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[63,tid=13749,Native,Thread*=0xb929ed68,peer=0x140c9100,"VlcObject"] 09-18 10:42:29.719 I/MaliEGL (13269): [Mali]window_type=1, is_framebuffer=0, errnum = 0 09-18 10:42:29.719 I/MaliEGL (13269): [Mali]surface->num_buffers=3, surface->num_frames=2, win_min_undequeued=1 09-18 10:42:29.719 I/MaliEGL (13269): [Mali]max_allowed_dequeued_buffers=2 09-18 10:42:29.817 W/art (13269): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[65,tid=13753,Native,Thread*=0xb96989f0,peer=0x131cc460,"AWindowHandler"] 09-18 10:42:30.276 I/jellyfin-apiclient(13269): ReportPlaybackStopped: Item 71c080c6-8a63-3015-2a21-48d1fde881f1, Ticks: 5845620000 09-18 10:42:30.854 I/ExoPlayerImpl(13269): Release 273e3259 [ExoPlayerLib/2.19.1] [tank, AFTT, Amazon, 22] [goog.exo.core, goog.exo.ui, goog.exo.exoplayer, goog.exo.decoder] 09-18 10:42:31.074 I/Choreographer(13269): Skipped 181 frames! The application may be doing too much work on its main thread. 09-18 10:42:31.260 I/jellyfin-apiclient(13269): Response received from: http://192.168.1.29:8096/Sessions/Playing/Progress 09-18 10:42:34.636 I/ContextImpl(15080): com.amazon.client.metrics.api registered service at i = 79 09-18 10:42:34.900 I/ACRA (15080): ACRA is enabled for org.jellyfin.androidtv, initializing... 09-18 10:42:35.397 I/LogInitializer(15080): Debug tree planted 09-18 10:42:35.400 I/art (15080): Background sticky concurrent mark sweep GC freed 13328(566KB) AllocSpace objects, 3(129KB) LOS objects, 6% free, 6MB/7MB, paused 8.816ms total 82.789ms 09-18 10:42:35.516 I/art (15080): Background partial concurrent mark sweep GC freed 2577(120KB) AllocSpace objects, 2(194KB) LOS objects, 36% free, 6MB/10MB, paused 6.995ms total 113.427ms 09-18 10:42:35.654 I/MigrationContext(15080): Requested migration from 2 to 2. Found 1 migrations in total. 09-18 10:42:36.050 I/SessionRepositoryImpl(15080): Restoring session 09-18 10:42:36.235 I/org.jellyfin.sdk.api.client.KtorClient(15080): GET http://192.168.1.29:8096/Branding/Configuration 09-18 10:42:36.458 I/ProcessLifecycleInitial(15080): Registering 0 ActivityLifecycleCallbacks 09-18 10:42:36.489 E/SQLiteLog(15080): (283) recovered 44 frames from WAL file /data/data/org.jellyfin.androidtv/databases/androidx.work.workdb-wal --------- beginning of system 09-18 10:42:36.819 I/FrameworkJumpTable(15080): Successfully loaded all classes 09-18 10:42:36.855 I/FrameworkJumpTable(15080): Successfully loaded all methods 09-18 10:42:36.860 I/FrameworkJumpTable(15080): Successfully loaded all fields 09-18 10:42:36.908 I/MigrationContext(15080): Requested migration from 6 to 6. Found 3 migrations in total. 09-18 10:42:36.913 I/ActivityThemeExtensions(15080): Applying theme DARK 09-18 10:42:36.954 I/art (15080): Background sticky concurrent mark sweep GC freed 21621(1296KB) AllocSpace objects, 9(144KB) LOS objects, 10% free, 9MB/10MB, paused 12.467ms total 119.307ms 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): Unable to retrieve displaypreferences. (displayPreferencesId=7b26709a0eea9312e5a91bb815e14c26, app=jellyfin-androidtv) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): org.jellyfin.sdk.api.client.exception.MissingUserIdException: Required value userId is null. Provide it by setting ApiClient.userId or passing it in the function call. 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.sdk.api.operations.DisplayPreferencesApi.getDisplayPreferences$default(DisplayPreferencesApi.kt:32) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.preference.store.DisplayPreferencesStore.update$suspendImpl(DisplayPreferencesStore.kt:59) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.preference.store.DisplayPreferencesStore.update(DisplayPreferencesStore.kt) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.preference.PreferencesRepository$getLibraryPreferences$1.invokeSuspend(PreferencesRepository.kt:23) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.preference.PreferencesRepository.getLibraryPreferences(PreferencesRepository.kt:23) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.onCreate(BrowseGridFragment.java:164) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.Fragment.performCreate(Fragment.java:3090) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:121) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1433) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2977) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2884) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:220) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at org.jellyfin.androidtv.ui.browsing.MainActivity.onCreate(MainActivity.kt:40) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.Activity.performCreate(Activity.java:6022) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2448) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2563) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.ActivityThread.access$900(ActivityThread.java:168) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1336) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.os.Handler.dispatchMessage(Handler.java:102) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.os.Looper.loop(Looper.java:135) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at android.app.ActivityThread.main(ActivityThread.java:5619) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at java.lang.reflect.Method.invoke(Native Method) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at java.lang.reflect.Method.invoke(Method.java:372) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984) 09-18 10:42:37.379 E/DisplayPreferencesStore(15080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 09-18 10:42:37.381 I/DisplayPreferencesStore(15080): Creating an empty DisplayPreferencesDto for next commit. 09-18 10:42:37.449 E/ACRA (15080): ACRA caught a RuntimeException for org.jellyfin.androidtv 09-18 10:42:37.449 E/ACRA (15080): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.MainActivity}: java.lang.NullPointerException 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2495) 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2563) 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread.access$900(ActivityThread.java:168) 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1336) 09-18 10:42:37.449 E/ACRA (15080): at android.os.Handler.dispatchMessage(Handler.java:102) 09-18 10:42:37.449 E/ACRA (15080): at android.os.Looper.loop(Looper.java:135) 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread.main(ActivityThread.java:5619) 09-18 10:42:37.449 E/ACRA (15080): at java.lang.reflect.Method.invoke(Native Method) 09-18 10:42:37.449 E/ACRA (15080): at java.lang.reflect.Method.invoke(Method.java:372) 09-18 10:42:37.449 E/ACRA (15080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984) 09-18 10:42:37.449 E/ACRA (15080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 09-18 10:42:37.449 E/ACRA (15080): Caused by: java.lang.NullPointerException 09-18 10:42:37.449 E/ACRA (15080): at org.jellyfin.androidtv.data.querying.StdItemQuery.(StdItemQuery.kt:23) 09-18 10:42:37.449 E/ACRA (15080): at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.setupQueries(BrowseGridFragment.java:547) 09-18 10:42:37.449 E/ACRA (15080): at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.onCreate(BrowseGridFragment.java:177) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.Fragment.performCreate(Fragment.java:3090) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:121) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1433) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2977) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2884) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252) 09-18 10:42:37.449 E/ACRA (15080): at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:220) 09-18 10:42:37.449 E/ACRA (15080): at org.jellyfin.androidtv.ui.browsing.MainActivity.onCreate(MainActivity.kt:40) 09-18 10:42:37.449 E/ACRA (15080): at android.app.Activity.performCreate(Activity.java:6022) 09-18 10:42:37.449 E/ACRA (15080): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122) 09-18 10:42:37.449 E/ACRA (15080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2448) 09-18 10:42:37.449 E/ACRA (15080): ... 10 more 09-18 10:42:37.454 I/art (15080): Background sticky concurrent mark sweep GC freed 6140(344KB) AllocSpace objects, 0(0B) LOS objects, 3% free, 10MB/10MB, paused 14.500ms total 65.596ms ``` ### App information ***App version***: `0.15.12` (`151299`) ***Package name***: `org.jellyfin.androidtv` ***Build***: ```json {"BOARD":"tank","BOOTLOADER":"unknown","BRAND":"Amazon","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"tank","DISPLAY":"LVY48F","FINGERPRINT":"Amazon\/full_tank\/tank:5.1.1\/LVY48F\/288.6.8.8_user_688802420:user\/release-keys","HARDWARE":"mt8127","HOST":"i3-ri-14-use1a-b-16-04-fos-6","ID":"LVY48F","IS_DEBUGGABLE":false,"MANUFACTURER":"Amazon","MODEL":"AFTT","PRODUCT":"full_tank","RADIO":"unknown","REQ_BATTERY_LEVEL":0,"SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1691547212000,"TYPE":"user","UNKNOWN":"unknown","USER":"build","WAN":false,"VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"288.6.8.8_user_688802420","RELEASE":"5.1.1","RESOURCES_SDK_INT":22,"SDK":"22","SDK_INT":22,"SECURITY_PATCH":"2022-00-01"}} ``` ***Build config***: ```json {"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":151299,"VERSION_NAME":"0.15.12"} ``` ### Device information ***Android version***: `5.1.1` ***Device brand***: `Amazon` ***Device product***: `full_tank` ***Device model***: `AFTT` ### Crash information ***Start time***: `2023-09-18T10:42:35.241+02:00` ***Crash time***: `2023-09-18T10:42:37.646+02:00`