Skip to content

Crashing when switching to next episode in playlist #3867

Closed
@sirdonpiano

Description

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingplaybackIssue related to media playback

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions