jellyfin / jellyfin-androidtv

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

Crashing when switching to next episode in playlist #3867

Closed sirdonpiano closed 1 month ago

sirdonpiano commented 1 month ago

Describe the bug

Android TV app crashes every time an episode ends and goes to switch to next episode in a playlist. This did not happen before updating to new server version 10.9.9 even with app version 0.17.1.

Unable to use app on Android TV now.

Logs


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

Logs

Stack Trace:

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.LinearLayout.getChildCount()' on a null object reference
    at org.jellyfin.androidtv.util.InfoLayoutHelper.addInfoRow(InfoLayoutHelper.java:15)
    at org.jellyfin.androidtv.ui.itemdetail.ItemListFragment.setBaseItem(ItemListFragment.java:311)
    at org.jellyfin.androidtv.ui.itemdetail.ItemListFragmentHelperKt$loadItem$1.invokeSuspend(ItemListFragmentHelper.kt:32)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    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)
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@ea640ce, Dispatchers.Main.immediate]

Logcat:

08-08 21:32:38.739 D/CustomPlaybackOverlayFragment(15455): rendering subtitle event: 387 (pos 1256463 start 1255986 end 1257476)
08-08 21:32:39.688 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:39.737 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:40.242 D/CustomPlaybackOverlayFragment(15455): clearing subtitle event: 387 (pos 1257961 - event end 1257476)
08-08 21:32:41.746 D/CustomPlaybackOverlayFragment(15455): rendering subtitle event: 388 (pos 1259471 start 1259423 end 1261915)
08-08 21:32:42.689 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:42.736 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:44.250 D/CustomPlaybackOverlayFragment(15455): clearing subtitle event: 388 (pos 1261971 - event end 1261915)
08-08 21:32:45.690 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:45.737 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:48.691 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:48.740 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:51.599 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(15455): Sending (raw) message {"MessageType":"KeepAlive"}
08-08 21:32:51.603 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(15455): Receiving (raw) message {"MessageId":"02f72fd41cef451e905f3c5683169405","MessageType":"KeepAlive"}
08-08 21:32:51.691 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:51.738 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:54.692 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:54.740 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:57.693 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:32:57.750 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:00.694 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:00.750 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:03.695 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:03.743 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:06.696 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:06.739 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:09.696 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:09.744 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:12.696 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:12.744 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:15.696 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:15.745 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:18.696 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:18.749 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:21.600 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(15455): Sending (raw) message {"MessageType":"KeepAlive"}
08-08 21:33:21.603 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(15455): Receiving (raw) message {"MessageId":"33df855420ec479e9124aaa734558d60","MessageType":"KeepAlive"}
08-08 21:33:21.697 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:21.742 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:24.698 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:24.710 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:27.699 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:27.714 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:28.812 D/CustomPlaybackOverlayFragment(15455): rendering subtitle event: 389 (pos 1306531 start 1306111 end 1308011)
08-08 21:33:30.314 D/CustomPlaybackOverlayFragment(15455): clearing subtitle event: 389 (pos 1308039 - event end 1308011)
08-08 21:33:30.699 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:30.743 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:33.317 D/CustomPlaybackOverlayFragment(15455): rendering subtitle event: 390 (pos 1311041 start 1310950 end 1311917)
08-08 21:33:33.700 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:33.748 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Progress
08-08 21:33:34.317 D/CustomPlaybackOverlayFragment(15455): subtitles handled in 2 iterations
08-08 21:33:34.818 D/CustomPlaybackOverlayFragment(15455): subtitles handled in 2 iterations
08-08 21:33:34.940 D/AudioTrack(15455): stop(1243): called with 58721280 frames delivered
08-08 21:33:35.320 D/CustomPlaybackOverlayFragment(15455): subtitles handled in 2 iterations
08-08 21:33:35.648 D/PlaybackController(15455): On Completion fired
08-08 21:33:35.649 D/PlaybackController(15455): stop called at 1313039
08-08 21:33:35.649 I/ReportingHelper(15455): ReportingHelper.reportStopped called for a09a4d0d-a296-2b0a-4484-a52632e98f16 at position 13130390000
08-08 21:33:35.649 I/jellyfin-apiclient(15455): ReportPlaybackStopped: Item a09a4d0d-a296-2b0a-4484-a52632e98f16, Ticks: 13130390000
08-08 21:33:35.650 D/jellyfin-apiclient(15455): Adding request to queue: http://192.168.1.230:8096/Sessions/Playing/Stopped
08-08 21:33:35.650 D/PlaybackController(15455): Moving to next queue item. Index: 1
08-08 21:33:35.651 D/NavigationRepositoryImpl(15455): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.playback.nextup.NextUpFragment (Kotlin reflection is not available), arguments=Bundle[{item_id=bf8ac148-91ab-89c0-0d81-19be3f69dca4}]) (via navigate function)
08-08 21:33:35.654 D/PlaybackController(15455): stop called at 1313039
08-08 21:33:35.665 D/SurfaceUtils(15455): disconnecting from surface 0x2a45a02950, reason disconnectFromSurface
08-08 21:33:35.675 I/ExoPlayerImpl(15455): Release dd53340 [AndroidXMedia3/1.4.0] [mdarcy, SHIELD Android TV, NVIDIA, 30] [media3.common, media3.session, media3.exoplayer, media3.decoder, media3.ui, media3.datasource, media3.extractor, media3.decoder.ffmpeg]
08-08 21:33:35.685 D/CustomPlaybackOverlayFragment(15455): Stopping!
08-08 21:33:35.712 I/org.jellyfin.sdk.api.ktor.KtorClient(15455): GET http://192.168.1.230:8096/Items/13002f8b-61cf-e804-d6ea-202a00822af2
08-08 21:33:35.712 V/io.ktor.client.plugins.HttpPlainText(15455): Adding Accept-Charset=UTF-8 to http://192.168.1.230:8096/Items/13002f8b-61cf-e804-d6ea-202a00822af2
08-08 21:33:35.717 I/ItemListFragment(15455): Got playback state change event IDLE for item <unknown>
08-08 21:33:35.725 I/org.jellyfin.sdk.api.ktor.KtorClient(15455): GET http://192.168.1.230:8096/Items/bf8ac148-91ab-89c0-0d81-19be3f69dca4
08-08 21:33:35.725 V/io.ktor.client.plugins.HttpPlainText(15455): Adding Accept-Charset=UTF-8 to http://192.168.1.230:8096/Items/bf8ac148-91ab-89c0-0d81-19be3f69dca4
08-08 21:33:35.758 V/io.ktor.client.plugins.HttpCallValidator(15455): Validating response for request http://192.168.1.230:8096/Items/bf8ac148-91ab-89c0-0d81-19be3f69dca4
08-08 21:33:35.758 V/io.ktor.client.plugins.DefaultResponseValidation(15455): Skipping default response validation for http://192.168.1.230:8096/Items/bf8ac148-91ab-89c0-0d81-19be3f69dca4
08-08 21:33:35.763 V/io.ktor.client.plugins.defaultTransformers(15455): Transformed with default transformers response body for http://192.168.1.230:8096/Items/bf8ac148-91ab-89c0-0d81-19be3f69dca4 to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
08-08 21:33:35.773 I/jellyfin-apiclient(15455): Response received from: http://192.168.1.230:8096/Sessions/Playing/Stopped
08-08 21:33:35.773 V/io.ktor.client.plugins.HttpCallValidator(15455): Validating response for request http://192.168.1.230:8096/Items/13002f8b-61cf-e804-d6ea-202a00822af2
08-08 21:33:35.773 V/io.ktor.client.plugins.DefaultResponseValidation(15455): Skipping default response validation for http://192.168.1.230:8096/Items/13002f8b-61cf-e804-d6ea-202a00822af2
08-08 21:33:35.774 V/io.ktor.client.plugins.defaultTransformers(15455): Transformed with default transformers response body for http://192.168.1.230:8096/Items/13002f8b-61cf-e804-d6ea-202a00822af2 to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
08-08 21:33:35.784 E/ACRA    (15455): ACRA caught a NullPointerException for org.jellyfin.androidtv
08-08 21:33:35.784 E/ACRA    (15455): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.LinearLayout.getChildCount()' on a null object reference
08-08 21:33:35.784 E/ACRA    (15455):   at org.jellyfin.androidtv.util.InfoLayoutHelper.addInfoRow(InfoLayoutHelper.java:15)
08-08 21:33:35.784 E/ACRA    (15455):   at org.jellyfin.androidtv.ui.itemdetail.ItemListFragment.setBaseItem(ItemListFragment.java:311)
08-08 21:33:35.784 E/ACRA    (15455):   at org.jellyfin.androidtv.ui.itemdetail.ItemListFragmentHelperKt$loadItem$1.invokeSuspend(ItemListFragmentHelper.kt:32)
08-08 21:33:35.784 E/ACRA    (15455):   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
08-08 21:33:35.784 E/ACRA    (15455):   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
08-08 21:33:35.784 E/ACRA    (15455):   at android.os.Handler.handleCallback(Handler.java:938)
08-08 21:33:35.784 E/ACRA    (15455):   at android.os.Handler.dispatchMessage(Handler.java:99)
08-08 21:33:35.784 E/ACRA    (15455):   at android.os.Looper.loop(Looper.java:223)
08-08 21:33:35.784 E/ACRA    (15455):   at android.app.ActivityThread.main(ActivityThread.java:7668)
08-08 21:33:35.784 E/ACRA    (15455):   at java.lang.reflect.Method.invoke(Native Method)
08-08 21:33:35.784 E/ACRA    (15455):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
08-08 21:33:35.784 E/ACRA    (15455):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
08-08 21:33:35.784 E/ACRA    (15455):   Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@ea640ce, Dispatchers.Main.immediate]
08-08 21:33:35.784 D/ACRA    (15455): Building report
08-08 21:33:35.785 D/ACRA    (15455): Starting collectors with priority FIRST
08-08 21:33:35.786 D/ACRA    (15455): Calling collector org.acra.collector.LogCatCollector
08-08 21:33:35.788 D/ACRA    (15455): Calling collector org.acra.collector.DropBoxCollector
08-08 21:33:35.788 D/ACRA    (15455): Calling collector org.acra.collector.StacktraceCollector
08-08 21:33:35.788 D/ACRA    (15455): Collector org.acra.collector.DropBoxCollector completed
08-08 21:33:35.791 D/ACRA    (15455): Collector org.acra.collector.StacktraceCollector completed
08-08 21:33:35.801 D/ACRA    (15455): Retrieving logcat output (buffer:default)...

App information

App version: 0.17.1 (170199)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"darcy","BOOTLOADER":"32.00.2019.50-t210-69ebfcbe","BRAND":"NVIDIA","CPU_ABI":"arm64-v8a","CPU_ABI2":"","DEVICE":"mdarcy","DISPLAY":"RQ1A.210105.003.7825230_3167.5736","FINGERPRINT":"NVIDIA\/mdarcy\/mdarcy:11\/RQ1A.210105.003\/7825230_3167.5736:user\/release-keys","HARDWARE":"darcy","HOST":"mobile-u64-5308-d7000","ID":"RQ1A.210105.003","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"NVIDIA","MODEL":"SHIELD Android TV","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"mdarcy","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":["arm64-v8a"],"SUPPORTED_ABIS":["arm64-v8a","armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1665975826000,"TYPE":"user","UNKNOWN":"unknown","USER":"NVIDIA","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"7825230_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:

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

Device information

Android version: 11
Device brand: NVIDIA
Device product: mdarcy
Device model: SHIELD Android TV

Crash information

Start time: 2024-08-08T17:37:13.176-04:00
Crash time: 2024-08-08T21:33:35.864-04:00

FFmpeg logs

No response

Media info of the file

No response

Application version

0.17.1

Device information

Nvidia Shield

Android version

11

Jellyfin server version

10.9.9

nielsvanvelzen commented 1 month ago

Thanks for reporting, should be fixed in the next release.

MuscleLondon commented 3 weeks ago

Bug still there after installing 0.17.4

jadev-projects commented 3 weeks ago

https://github.com/jellyfin/jellyfin-androidtv/issues/3926