Closed twistios closed 2 months ago
Steps to reproduce the bug
Use my database: rimusic_20240828194610.db.zip
1. Import the database 2. Go to "Songs" Menu 3. Select "All" 4. Scroll down far enough 5. Play a song
Expected behavior
The song should play.
Actual behavior
The app crashs.
Screenshots/Screen recordings
No response
Logs
Stack trace
RiMusic version
0.6.49.2
Android version
14
Additional information
I had the problem that the original error was this (the comments are already based on my research): Original error
One might know that the crash logs are somewhat obfuscated in the release version. In this case even the Error was obfuscated. When I tried to reproduce it on my phone, I got the problem that not only this crash happens but also one in the "misc" settings so I was not able to copy the crash log to the clipboard. Even logcat did not show any output about the crash, it seemed like the app just closed itself for no reason. Then I copied the database to my PC and there imported it into the emulator where I was able to get the crash log without obfuscation.
@nojdug what were you trying to say?
Steps to reproduce the bug
Use my database: rimusic_20240828194610.db.zip
Expected behavior
The song should play.
Actual behavior
The app crashs.
Screenshots/Screen recordings
No response
Logs
Stack trace
```` 2024-08-29T00:01:33.939: androidx.media3.common.IllegalSeekPositionException androidx.media3.exoplayer.ExoPlayerImpl.setMediaSourcesInternal(ExoPlayerImpl.java:2366) androidx.media3.exoplayer.ExoPlayerImpl.setMediaSources(ExoPlayerImpl.java:644) androidx.media3.exoplayer.ExoPlayerImpl.setMediaItems(ExoPlayerImpl.java:602) it.fast4x.rimusic.utils.PlayerKt.forcePlayAtIndex(Player.kt:76) it.fast4x.rimusic.ui.screens.home.HomeSongsModernKt$HomeSongsModern$24$1$15$6$2$1.invoke(HomeSongsModern.kt:1639) it.fast4x.rimusic.ui.screens.home.HomeSongsModernKt$HomeSongsModern$24$1$15$6$2$1.invoke(HomeSongsModern.kt:1631) androidx.compose.foundation.CombinedClickableNodeImpl$clickPointerInput$5.invoke-k-4lQ0M(Clickable.kt:792) androidx.compose.foundation.CombinedClickableNodeImpl$clickPointerInput$5.invoke(Clickable.kt:778) androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapGestures$2$1.invokeSuspend(TapGestureDetector.kt:138) kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:175) kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:164) kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:466) kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:500) kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:489) kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:364) androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719) androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598) androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620) androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044) androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387) androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229) androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144) androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120) androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1993) androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1944) androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1828) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801) com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:490) com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1904) android.app.Activity.dispatchTouchEvent(Activity.java:4377) androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:448) android.view.View.dispatchPointerEvent(View.java:15919) android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7021) android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6815) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6229) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252) android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6417) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260) android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6474) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233) android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9211) android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9162) android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9131) android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9337) android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267) android.os.MessageQueue.nativePollOnce(Native Method) android.os.MessageQueue.next(MessageQueue.java:335) android.os.Looper.loopOnce(Looper.java:162) android.os.Looper.loop(Looper.java:294) android.app.ActivityThread.main(ActivityThread.java:8177) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) ````
RiMusic version
0.6.49.2
Android version
14
Additional information
I had the problem that the original error was this (the comments are already based on my research):
Original error
```` 2024-08-28T20:20:11.144: g5.i // special java.lang.IllegalStateException: "response" "cachedResponseText" "Bad response: " ". Text: \"" u2.B.j0(SourceFile:63) // j0(Ljava/util/ArrayList;IJZ)V d6.b.M(SourceFile:31) L6.k0.a(SourceFile:130) w.A.b(SourceFile:18) y.f1.u(SourceFile:334) g7.a.i(SourceFile:9) z7.C.B(SourceFile:79) z7.g.s(SourceFile:105) z7.g.E(SourceFile:33) z7.g.i(SourceFile:17) C0.L.A0(SourceFile:51) C0.L.K(SourceFile:32) w.j.K(SourceFile:111) C0.h.h(SourceFile:157) C0.h.h(SourceFile:136) C0.h.h(SourceFile:136) C0.h.h(SourceFile:136) C0.h.h(SourceFile:136) B2.c.E(SourceFile:36) C0.x.c(SourceFile:142) J0.y.K(SourceFile:81) J0.y.m(SourceFile:383) J0.y.dispatchTouchEvent(SourceFile:76) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:776) com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1967) android.app.Activity.dispatchTouchEvent(Activity.java:4548) j.x.dispatchTouchEvent(SourceFile:3) com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:734) android.view.View.dispatchPointerEvent(View.java:16489) android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:8602) android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:8353) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7682) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7739) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7705) android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7908) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7713) android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7965) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7686) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7739) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7705) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7713) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7686) android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:11250) android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:11119) android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:11075) android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:11384) android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:337) android.os.MessageQueue.nativePollOnce(Native Method) android.os.MessageQueue.next(MessageQueue.java:335) android.os.Looper.loopOnce(Looper.java:187) android.os.Looper.loop(Looper.java:319) android.app.ActivityThread.main(ActivityThread.java:8919) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) ````
One might know that the crash logs are somewhat obfuscated in the release version. In this case even the Error was obfuscated. When I tried to reproduce it on my phone, I got the problem that not only this crash happens but also one in the "misc" settings so I was not able to copy the crash log to the clipboard. Even logcat did not show any output about the crash, it seemed like the app just closed itself for no reason. Then I copied the database to my PC and there imported it into the emulator where I was able to get the crash log without obfuscation.