maxrave-dev / maxrave-dev/SimpMusic
Crash
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 11.4k
- Forks
- 599
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 7
Description
Duplicate Check
- I confirm I searched for existing reports and found no duplicates.
Describe the Bug
The app crashed :(
Steps to Reproduce
I just went into settings
Expected Behavior
I expected to go into settings
App Version
1.2.1
Android Version
Android 14 (SDK 34)
Device Model
TECNO KL6
Custom ROM
- I am using a custom ROM
Custom ROM Name (if applicable)
No response
Screenshots (optional)
No response
Log / Error Details
Stack trace:
java.lang.IllegalStateException: Underflow in restore - more restores than saves
at android.graphics.Canvas.restore(Canvas.java:647)
at gh.p(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:3)
at vt6.w(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:5)
at s5.d(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:2577)
at vv2.p0(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:3)
at in5.b(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:52)
at xh7.W0(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:48)
at wh7.b(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:25)
at a7a.d(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:308)
at ui.invoke(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:181)
at vd.d(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:278)
at g14.d(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:47)
at vd.d(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:345)
at m14.I(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:77)
at g14.f(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:55)
at j14.g(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:106)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(r8-map-id-ab8b4a0321a3118f39d70470b6586e671770d7d6d172783811dc86cd42263c54:76)
at android.view.View.draw(View.java:24088)
at android.view.View.updateDisplayListIfDirty(View.java:22908)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4639)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4612)
at android.view.View.updateDisplayListIfDirty(View.java:22855)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:707)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:713)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:811)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5383)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5075)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4199)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2779)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10045)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1508)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1517)
at android.view.Choreographer.doCallbacks(Choreographer.java:1085)
at android.view.Choreographer.doFrame(Choreographer.java:977)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1491)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:243)
at android.os.Looper.loop(Looper.java:338)
at android.app.ActivityThread.main(ActivityThread.java:8506)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1064)
User actions:
2026-05-13 21:06:21: MainActivity created
2026-05-13 21:06:21: MainActivity resumed
2026-05-13 21:09:21: MainActivity paused
2026-05-13 21:11:49: MainActivity resumed
2026-05-13 21:12:44: MainActivity paused
2026-05-13 21:14:36: MainActivity resumed
2026-05-13 21:14:48: MainActivity paused
2026-05-13 21:15:01: MainActivity resumed
2026-05-13 21:15:30: MainActivity paused
2026-05-13 21:16:21: MainActivity resumed
2026-05-13 21:18:12: MainActivity paused
2026-05-13 21:21:06: MainActivity resumed
2026-05-13 21:25:08: MainActivity paused
2026-05-13 21:25:57: MainActivity resumed
2026-05-13 21:26:09: MainActivity paused
2026-05-13 21:26:15: MainActivity resumed
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash when opening Settings on Android 14 with app version 1.2.1, then trace the failure from MainActivity through AndroidComposeView and the reported Canvas.restore stack trace. The report does not identify a source file or test, so first map the obfuscated frames to the relevant rendering code. Done means opening Settings no longer crashes on the reported device and scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100