jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.87k stars 489 forks source link

Null Pointer crash on launch #3300

Closed stuartf closed 10 months ago

stuartf commented 10 months ago

Describe the bug

Frequently when re-launching the app it will crash with a NPE immediately after showing the home screen.

Logs


client: Jellyfin for Android TV client_version: 0.16.1 client_repository: https://github.com/jellyfin/jellyfin-androidtv type: crash_report format: markdown

Logs

Stack Trace:

java.lang.NullPointerException
    at org.jellyfin.androidtv.ui.home.HomeFragmentHelper.loadResume(HomeFragmentHelper.kt:33)
    at org.jellyfin.androidtv.ui.home.HomeFragmentHelper.loadResumeVideo(HomeFragmentHelper.kt:51)
    at org.jellyfin.androidtv.ui.home.HomeRowsFragment$onCreate$1.invokeSuspend(HomeRowsFragment.kt:123)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f81812, Dispatchers.IO]

Logcat:

12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.os.Looper.loop(Looper.java:214)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.app.ActivityThread.main(ActivityThread.java:7356)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at java.lang.reflect.Method.invoke(Native Method)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)
12-25 14:15:28.277 E/AndroidRuntime(16854): Caused by: java.lang.NullPointerException
12-25 14:15:28.277 E/AndroidRuntime(16854):     at org.jellyfin.androidtv.data.querying.StdItemQuery.<init>(StdItemQuery.kt:23)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.setupQueries(BrowseGridFragment.java:545)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.onCreate(BrowseGridFragment.java:177)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.Fragment.performCreate(Fragment.java:3094)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:504)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:268)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:122)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2941)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:219)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at org.jellyfin.androidtv.ui.browsing.MainActivity.onCreate(MainActivity.kt:55)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.app.Activity.performCreate(Activity.java:7821)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.app.Activity.performCreate(Activity.java:7810)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
12-25 14:15:28.277 E/AndroidRuntime(16854):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
12-25 14:15:28.277 E/AndroidRuntime(16854):     ... 11 more
--------- beginning of main
01-07 20:31:29.851 W/lyfin.androidt(21001): Using default instruction set features for ARM CPU variant (cortex-a9) using conservative defaults
01-07 20:31:29.852 E/lyfin.androidt(21001): Not starting debugger since process cannot load the jdwp agent.
01-07 20:31:29.992 W/lyfin.androidt(21001): JIT profile information will not be recorded: profile file does not exits.
01-07 20:31:29.992 I/chatty  (21001): uid=10198(org.jellyfin.androidtv) identical 1 line
01-07 20:31:29.992 W/lyfin.androidt(21001): JIT profile information will not be recorded: profile file does not exits.
01-07 20:31:30.112 D/ACRA    (21001): ACRA processName='org.jellyfin.androidtv'
01-07 20:31:30.117 I/ACRA    (21001): ACRA is enabled for org.jellyfin.androidtv, initializing...
01-07 20:31:30.119 D/ACRA    (21001): SimplePluginLoader loading services from plugin classes : [Ljava.lang.Class;@d7d9657
01-07 20:31:30.122 D/ACRA    (21001): ServicePluginLoader loading services from ServiceLoader : java.util.ServiceLoader[org.acra.collector.Collector]
01-07 20:31:30.172 D/ACRA    (21001): Loaded Collector of type org.acra.collector.ConfigurationCollector
01-07 20:31:30.172 D/ACRA    (21001): Loaded Collector of type org.acra.collector.CustomDataCollector
01-07 20:31:30.172 D/ACRA    (21001): Loaded Collector of type org.acra.collector.DeviceFeaturesCollector
01-07 20:31:30.173 D/ACRA    (21001): Loaded Collector of type org.acra.collector.DeviceIdCollector
01-07 20:31:30.173 D/ACRA    (21001): Loaded Collector of type org.acra.collector.DisplayManagerCollector
01-07 20:31:30.173 D/ACRA    (21001): Loaded Collector of type org.acra.collector.DropBoxCollector
01-07 20:31:30.174 D/ACRA    (21001): Loaded Collector of type org.acra.collector.LogCatCollector
01-07 20:31:30.174 D/ACRA    (21001): Loaded Collector of type org.acra.collector.LogFileCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.MediaCodecListCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.MemoryInfoCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.PackageManagerCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.ReflectionCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.SettingsCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.SharedPreferencesCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.SimpleValuesCollector
01-07 20:31:30.175 D/ACRA    (21001): Loaded Collector of type org.acra.collector.StacktraceCollector
01-07 20:31:30.176 D/ACRA    (21001): Loaded Collector of type org.acra.collector.ThreadCollector
01-07 20:31:30.192 D/ACRA    (21001): Loaded Collector of type org.acra.collector.TimeCollector
01-07 20:31:30.200 D/ACRA    (21001): SimplePluginLoader loading services from plugin classes : [Ljava.lang.Class;@d7d9657
01-07 20:31:30.200 D/ACRA    (21001): ServicePluginLoader loading services from ServiceLoader : java.util.ServiceLoader[org.acra.scheduler.SenderSchedulerFactory]
01-07 20:31:30.200 D/ACRA    (21001): SimplePluginLoader loading services from plugin classes : [Ljava.lang.Class;@d7d9657
01-07 20:31:30.200 D/ACRA    (21001): ServicePluginLoader loading services from ServiceLoader : java.util.ServiceLoader[org.acra.config.ReportingAdministrator]
01-07 20:31:30.243 D/WM-WrkMgrInitializer(21001): Initializing WorkManager with default configuration.
01-07 20:31:30.264 W/lyfin.androidt(21001): Accessing hidden field Ljava/util/Collections$SynchronizedCollection;->mutex:Ljava/lang/Object; (greylist-max-o, reflection, denied)
01-07 20:31:30.264 W/lyfin.androidt(21001): Accessing hidden method Ljava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V (greylist-max-o, reflection, denied)
01-07 20:31:30.265 W/lyfin.androidt(21001): Accessing hidden method Ljava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V (greylist-max-o, reflection, denied)
01-07 20:31:30.269 D/WM-PackageManagerHelper(21001): Skipping component enablement for androidx.work.impl.background.systemjob.SystemJobService
01-07 20:31:30.269 D/WM-Schedulers(21001): Created SystemJobScheduler and enabled SystemJobService
01-07 20:31:30.295 I/LogInitializer(21001): Debug tree planted
01-07 20:31:30.344 I/MigrationContext(21001): Requested migration from 2 to 2. Found 1 migrations in total.
01-07 20:31:30.372 I/SessionRepositoryImpl$restoreSession(21001): Restoring session
01-07 20:31:30.383 I/org.jellyfin.sdk.api.client.KtorClient(21001): GET https://jellyfin.tyro.homelinux.com/Branding/Configuration
01-07 20:31:30.393 D/ACRA    (21001): ACRA processName='org.jellyfin.androidtv'
01-07 20:31:30.402 D/NetworkSecurityConfig(21001): No Network Security Config specified, using platform default
01-07 20:31:30.428 I/MigrationContext(21001): Requested migration from 7 to 7. Found 1 migrations in total.
01-07 20:31:30.433 I/ActivityThemeExtensionsKt(21001): Applying theme DARK
01-07 20:31:30.452 D/ACRA    (21001): onActivityCreated class org.jellyfin.androidtv.ui.browsing.MainActivity
01-07 20:31:30.468 W/LeanbackOverlayFragment(21001): PlaybackController is null, skipping initialization.
01-07 20:31:30.494 D/NavigationRepositoryImpl(21001): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.home.HomeFragment (Kotlin reflection is not available), arguments=Bundle[{}]) (via init)
01-07 20:31:30.495 D/NavigationRepositoryImpl(21001): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.home.HomeFragment (Kotlin reflection is not available), arguments=Bundle[{}]) (via reset)
01-07 20:31:30.501 D/LegacyMediaManager(21001): Added event listener.  Total listeners: 1
01-07 20:31:30.504 W/MainActivity(21001): Activity org.jellyfin.androidtv.ui.browsing.MainActivity started without a session, bouncing to StartupActivity
01-07 20:31:30.511 E/ACRA    (21001): ACRA caught a NullPointerException for org.jellyfin.androidtv
01-07 20:31:30.511 E/ACRA    (21001): java.lang.NullPointerException
01-07 20:31:30.511 E/ACRA    (21001):   at org.jellyfin.androidtv.ui.home.HomeFragmentHelper.loadResume(HomeFragmentHelper.kt:33)
01-07 20:31:30.511 E/ACRA    (21001):   at org.jellyfin.androidtv.ui.home.HomeFragmentHelper.loadResumeVideo(HomeFragmentHelper.kt:51)
01-07 20:31:30.511 E/ACRA    (21001):   at org.jellyfin.androidtv.ui.home.HomeRowsFragment$onCreate$1.invokeSuspend(HomeRowsFragment.kt:123)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
01-07 20:31:30.511 E/ACRA    (21001):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
01-07 20:31:30.511 E/ACRA    (21001):   Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f81812, Dispatchers.IO]
01-07 20:31:30.511 D/ACRA    (21001): Building report
01-07 20:31:30.513 D/ACRA    (21001): Starting collectors with priority FIRST
01-07 20:31:30.514 D/ACRA    (21001): Calling collector org.acra.collector.DropBoxCollector
01-07 20:31:30.514 D/ACRA    (21001): Collector org.acra.collector.DropBoxCollector completed
01-07 20:31:30.515 D/ACRA    (21001): Calling collector org.acra.collector.StacktraceCollector
01-07 20:31:30.515 D/ACRA    (21001): Calling collector org.acra.collector.LogCatCollector
01-07 20:31:30.516 D/ACRA    (21001): Collector org.acra.collector.StacktraceCollector completed
01-07 20:31:30.520 D/ACRA    (21001): Retrieving logcat output (buffer:default)...
01-07 20:31:30.542 E/libc    (21071): Access denied finding property "persist.vendor.system.svp.dbg.loglevel"

App information

App version: 0.16.1 (160199)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"mt5895","BOOTLOADER":"unknown","BRAND":"Sony","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"BRAVIA_VH2","DISPLAY":"BRAVIA_VH2_UC-user 10 QTG3.200305.006.S346 672821 release-keys","FINGERPRINT":"Sony\/BRAVIA_VH2_UC\/BRAVIA_VH2:10\/QTG3.200305.006.S346\/672821:user\/release-keys","HARDWARE":"mt5895","HOST":"BuildHost708","ID":"QTG3.200305.006.S346","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"Sony","MODEL":"BRAVIA 4K VH2","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"BRAVIA_VH2_UC","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1690485139000,"TYPE":"user","UNKNOWN":"unknown","USER":"root","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","FIRST_SDK_INT":29,"INCREMENTAL":"672821","PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"10","RESOURCES_SDK_INT":29,"SDK":"29","SDK_INT":29,"SECURITY_PATCH":"2023-06-01"}}

Build config:

{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":160199,"VERSION_NAME":"0.16.1"}

Device information

Android version: 10
Device brand: Sony
Device product: BRAVIA_VH2_UC
Device model: BRAVIA 4K VH2

Crash information

Start time: 2024-01-07T20:31:30.199-05:00
Crash time: 2024-01-07T20:31:30.571-05:00

Application version

0.16.1

Where did you install the app from?

Google Play

Device information

Sony BRAVIA_VH2_UC

Android version

Android 10

Jellyfin server version

10.8.13

nielsvanvelzen commented 10 months ago

Update to 0.16.4