jellyfin / jellyfin-androidtv

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

Client crash on loading #3310

Closed Y0ngg4n closed 9 months ago

Y0ngg4n commented 9 months ago

Software Versions

Describe the bug

Play some media and the roku client loads the video and crashes

How To Reproduce

Difficult to reproduce. Currently only happening on mk4 container files

Expected behavior

Play the video file

Logs

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

***Stack Trace***: 
```log
java.lang.NullPointerException: Attempt to invoke virtual method 'org.jellyfin.sdk.api.sockets.listener.SocketListenerDefinition org.jellyfin.sdk.api.sockets.listener.SocketListener.getDefinition()' on a null object reference
    at org.jellyfin.sdk.api.sockets.helper.ListenerHelper.getSubscriptions(ListenerHelper.kt:13)
    at org.jellyfin.sdk.api.sockets.SocketInstance.updateSubscriptions(SocketInstance.kt:141)
    at org.jellyfin.sdk.api.sockets.SocketInstance.connectAndBind(SocketInstance.kt:236)
    at org.jellyfin.sdk.api.sockets.SocketInstance.access$connectAndBind(SocketInstance.kt:35)
    at org.jellyfin.sdk.api.sockets.SocketInstance$connectAndBind$1.invokeSuspend(Unknown Source:15)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    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}@df59f6e, Dispatchers.Default]

Logcat:

01-13 23:12:39.086 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getClipToOutline()Z (dark greylist, linking)
01-13 23:12:39.086 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getElevation()F (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getInverseMatrix(Landroid/graphics/Matrix;)V (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getMatrix(Landroid/graphics/Matrix;)V (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getPivotX()F (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getPivotY()F (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getRotationX()F (dark greylist, linking)
01-13 23:12:39.087 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getRotationY()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getRotation()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getScaleX()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getScaleY()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getTranslationX()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getTranslationY()F (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->hasOverlappingRendering()Z (dark greylist, linking)
01-13 23:12:39.088 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->offsetTopAndBottom(I)Z (dark greylist, linking)
01-13 23:12:39.089 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setAlpha(F)Z (dark greylist, linking)
01-13 23:12:39.089 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setCameraDistance(F)Z (dark greylist, linking)
01-13 23:12:39.089 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setClipToOutline(Z)Z (dark greylist, linking)
01-13 23:12:39.090 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setLayerType(I)Z (dark greylist, linking)
01-13 23:12:39.090 I/chatty  (21423): uid=10088(org.jellyfin.androidtv) identical 1 line
01-13 23:12:39.090 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setLayerType(I)Z (dark greylist, linking)
01-13 23:12:39.090 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setElevation(F)Z (dark greylist, linking)
01-13 23:12:39.090 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setOutline(Landroid/graphics/Outline;)Z (dark greylist, linking)
01-13 23:12:39.090 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setPivotX(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setPivotY(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setRotationX(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setRotationY(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setRotation(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setScaleX(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setScaleY(F)Z (dark greylist, linking)
01-13 23:12:39.091 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setTranslationX(F)Z (dark greylist, linking)
01-13 23:12:39.092 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->setTranslationY(F)Z (dark greylist, linking)
01-13 23:12:39.092 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getScaleX()F (dark greylist, linking)
01-13 23:12:39.109 W/lyfin.androidt(21423): Accessing hidden method Landroid/view/RenderNode;->getScaleX()F (dark greylist, linking)
01-13 23:12:39.113 W/View    (21423): requestLayout() improperly called by androidx.compose.ui.platform.ViewLayerContainer{ab63045 V.E...... ......ID 0,0-0,0} during layout: running second layout pass
01-13 23:12:39.113 W/View    (21423): requestLayout() improperly called by androidx.compose.ui.platform.ViewLayerContainer{20782a7 V.E...... ......ID 0,0-0,0} during layout: running second layout pass
01-13 23:12:39.151 I/Choreographer(21423): Skipped 55 frames!  The application may be doing too much work on its main thread.
01-13 23:12:39.230 W/RenderThread(21423): type=1400 audit(0.0:411): avc: denied { open } for path="/dev/mma" dev="tmpfs" ino=7398 scontext=u:r:untrusted_app:s0:c88,c256,c512,c768 tcontext=u:object_r:mstar_mma_device:s0 tclass=chr_file permissive=0
01-13 23:12:39.230 W/RenderThread(21423): type=1400 audit(0.0:412): avc: granted { write } for name="ion" dev="tmpfs" ino=9712 scontext=u:r:untrusted_app:s0:c88,c256,c512,c768 tcontext=u:object_r:ion_device:s0 tclass=chr_file
01-13 23:12:39.230 W/RenderThread(21423): type=1400 audit(0.0:413): avc: granted { write } for path="/dev/ion" dev="tmpfs" ino=9712 scontext=u:r:untrusted_app:s0:c88,c256,c512,c768 tcontext=u:object_r:ion_device:s0 tclass=chr_file
01-13 23:12:39.235 D/gralloc (21423): [ion_open:103] mma_open()
01-13 23:12:39.235 D/gralloc (21423): [mma_open:49] 
01-13 23:12:39.235 D/gralloc (21423): [ion_open:116] mma_open() failed! status=-19 errno=13
01-13 23:12:39.285 I/OpenGLRenderer(21423): Davey! duration=1000ms; Flags=0, IntendedVsync=36616285978920, Vsync=36617202645550, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=36617204891523, AnimationStart=36617204921690, PerformTraversalsStart=36617209713023, DrawStart=36617211259940, SyncQueued=36617238435940, SyncStart=36617291063856, IssueDrawCommandsStart=36617291372439, SwapBuffers=36617337003856, FrameCompleted=36617338698356, DequeueBufferDuration=0, QueueBufferDuration=1078000, 
01-13 23:12:39.323 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/System/Info/Public
01-13 23:12:39.441 I/SessionRepositoryImpl(21423): Updating current session. userId=62e20b33-8077-4606-8cad-27881940b1ad apiBindingSuccess=true
01-13 23:12:39.445 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/Users/Me
01-13 23:12:39.620 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/DisplayPreferences/livetv?userId=62e20b33-8077-4606-8cad-27881940b1ad&client=jellyfin-androidtv
01-13 23:12:39.714 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/DisplayPreferences/usersettings?userId=62e20b33-8077-4606-8cad-27881940b1ad&client=emby
01-13 23:12:39.801 I/StartupActivity$onPermissionsGranted(21423): Found a session in the session repository, waiting for the currentUser in the application class.
01-13 23:12:39.803 I/StartupActivity$onPermissionsGranted(21423): CurrentUser changed to 62e20b33-8077-4606-8cad-27881940b1ad while waiting for startup.
01-13 23:12:39.804 D/StartupActivity(21423): Determining next activity (action=android.intent.action.MAIN, itemId=null, itemIsUserView=false)
01-13 23:12:39.819 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/Playback/BitrateTest?size=4000000
01-13 23:12:39.837 D/NavigationRepositoryImpl(21423): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.home.HomeFragment (Kotlin reflection is not available), arguments=Bundle[{}]) (via init)
01-13 23:12:39.929 D/DefaultMediaStreamState(21423): Queue entry changed to null
01-13 23:12:39.930 D/DefaultMediaStreamState(21423): Current stream changed to null
01-13 23:12:39.951 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.952 I/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnecting
01-13 23:12:39.953 D/org.jellyfin.sdk.api.sockets.helper.ReconnectHelper(21423): Notified about reconnect, attempts=1
01-13 23:12:39.959 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.965 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.966 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.967 W/lyfin.androidt(21423): Accessing hidden method Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;I)I (dark greylist, linking)
01-13 23:12:39.969 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.971 I/chatty  (21423): uid=10088(org.jellyfin.androidtv) DefaultDispatch identical 1 line
01-13 23:12:39.973 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:39.976 W/lyfin.androidt(21423): Accessing hidden method Landroid/media/AudioTrack$Builder;->setOffloadedPlayback(Z)Landroid/media/AudioTrack$Builder; (dark greylist, linking)
01-13 23:12:39.977 I/ExoPlayerImpl(21423): Init 1d1359d [AndroidXMedia3/1.2.0] [hapjeong, AI PONT PLUS, Changhong, 28]
01-13 23:12:40.006 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:40.008 I/chatty  (21423): uid=10088(org.jellyfin.androidtv) DefaultDispatch identical 3 lines
01-13 23:12:40.009 D/org.jellyfin.sdk.api.sockets.SocketInstance(21423): Reconnect requested
01-13 23:12:40.048 I/org.jellyfin.sdk.api.client.KtorClient(21423): POST https://example.com/Sessions/Capabilities?playableMediaTypes=Video&playableMediaTypes=Audio&supportedCommands=DisplayContent&supportedCommands=DisplayMessage&supportedCommands=SendString&supportedCommands=VolumeUp&supportedCommands=VolumeDown&supportedCommands=SetVolume&supportedCommands=Mute&supportedCommands=Unmute&supportedCommands=ToggleMute&supportsMediaControl=true&supportsSync=false&supportsPersistentIdentifier=true
01-13 23:12:40.056 I/DefaultRenderersFactory(21423): Loaded FfmpegAudioRenderer.
01-13 23:12:40.284 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/Users/62e20b33-8077-4606-8cad-27881940b1ad/Items/Resume?limit=10&fields=DateCreated&mediaTypes=Video&imageTypeLimit=1&includeItemTypes=Episode&includeItemTypes=Movie&enableTotalRecordCount=true&enableImages=true&excludeActiveSessions=true
01-13 23:12:40.389 I/org.jellyfin.sdk.api.client.KtorClient(21423): GET https://example.com/Shows/NextUp?userId=62e20b33-8077-4606-8cad-27881940b1ad&limit=10&fields=DateCreated&imageTypeLimit=1&enableTotalRecordCount=true&disableFirstEpisode=false&enableRewatching=false
01-13 23:12:40.392 I/lyfin.androidt(21423): Background concurrent copying GC freed 27893(2MB) AllocSpace objects, 0(0B) LOS objects, 49% free, 9MB/19MB, paused 1.454ms total 424.683ms
01-13 23:12:40.460 I/org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession(21423): WebSocket has opened
01-13 23:12:40.476 E/ACRA    (21423): ACRA caught a NullPointerException for org.jellyfin.androidtv
01-13 23:12:40.476 E/ACRA    (21423): java.lang.NullPointerException: Attempt to invoke virtual method 'org.jellyfin.sdk.api.sockets.listener.SocketListenerDefinition org.jellyfin.sdk.api.sockets.listener.SocketListener.getDefinition()' on a null object reference
01-13 23:12:40.476 E/ACRA    (21423):   at org.jellyfin.sdk.api.sockets.helper.ListenerHelper.getSubscriptions(ListenerHelper.kt:13)
01-13 23:12:40.476 E/ACRA    (21423):   at org.jellyfin.sdk.api.sockets.SocketInstance.updateSubscriptions(SocketInstance.kt:141)
01-13 23:12:40.476 E/ACRA    (21423):   at org.jellyfin.sdk.api.sockets.SocketInstance.connectAndBind(SocketInstance.kt:236)
01-13 23:12:40.476 E/ACRA    (21423):   at org.jellyfin.sdk.api.sockets.SocketInstance.access$connectAndBind(SocketInstance.kt:35)
01-13 23:12:40.476 E/ACRA    (21423):   at org.jellyfin.sdk.api.sockets.SocketInstance$connectAndBind$1.invokeSuspend(Unknown Source:15)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
01-13 23:12:40.476 E/ACRA    (21423):   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
01-13 23:12:40.476 E/ACRA    (21423):   Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@df59f6e, Dispatchers.Default]
01-13 23:12:40.476 D/ACRA    (21423): Building report
01-13 23:12:40.477 D/ACRA    (21423): Starting collectors with priority FIRST
01-13 23:12:40.481 D/ACRA    (21423): Calling collector org.acra.collector.DropBoxCollector
01-13 23:12:40.482 D/ACRA    (21423): Collector org.acra.collector.DropBoxCollector completed
01-13 23:12:40.485 D/ACRA    (21423): Calling collector org.acra.collector.StacktraceCollector
01-13 23:12:40.487 D/ACRA    (21423): Collector org.acra.collector.StacktraceCollector completed
01-13 23:12:40.487 D/ACRA    (21423): Calling collector org.acra.collector.LogCatCollector
01-13 23:12:40.498 D/ACRA    (21423): Retrieving logcat output (buffer:default)...

App information

App version: 0.16.4 (160499)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"hapjeong","BOOTLOADER":"123456789","BRAND":"Changhong","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"hapjeong","DISPLAY":"PTM6.200722.316","FINGERPRINT":"Changhong\/FFDVB93\/hapjeong:9\/PTM6.200722.316\/7281016:user\/release-keys","HARDWARE":"m7322","HOST":"abfarm-01131","ID":"PTM6.200722.316","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"Changhong","MODEL":"AI PONT PLUS","PERMISSIONS_REVIEW_REQUIRED":false,"PRODUCT":"FFDVB93","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1618370277000,"TYPE":"user","UNKNOWN":"unknown","USER":"android-build","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","FIRST_SDK_INT":28,"INCREMENTAL":"7281016","PREVIEW_SDK_INT":0,"RELEASE":"9","RESOURCES_SDK_INT":28,"SDK":"28","SDK_INT":28,"SECURITY_PATCH":"2021-03-05"}}

Build config:

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

Device information

Android version: 9
Device brand: Changhong
Device product: FFDVB93
Device model: AI PONT PLUS

Crash information

Start time: 2024-01-13T23:12:37.309+01:00
Crash time: 2024-01-13T23:12:40.618+01:00


## Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->

## Connection Information

- Is server local or remote? 
remote
- Is server connection HTTP or HTTPS?
https

## Additional context
<!-- Add any other context about the problem here. -->
nielsvanvelzen commented 9 months ago

How are you running an Android TV app on a Roku??

Y0ngg4n commented 9 months ago

@nielsvanvelzen oh sorry wrong repository :(