maxrave-dev / SimpMusic

A simple music app using YouTube Music for backend
https://simpmusic.tech/
GNU General Public License v3.0
1.92k stars 114 forks source link

App exit unexpected #301

Open eval-exec opened 8 months ago

eval-exec commented 8 months ago

Describe the bug App crash when I scroll back playlist

To Reproduce It's hard to reproduce

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Log (Error Details) Paste the log from the crashing screen, if it is not a crash bug, skip it.

Build version: 0.2.0 
Current date: 2024-03-08 18:37:33 
Device: Samsung SM-S9180 
OS version: Android 14 (SDK 34) 

Stack trace:  
java.lang.ArrayIndexOutOfBoundsException: length=62; index=62
    at com.maxrave.simpmusic.ui.fragment.home.HomeFragment$initObserver$1.invoke(HomeFragment.kt:724)
    at com.maxrave.simpmusic.ui.fragment.home.HomeFragment$initObserver$1.invoke(HomeFragment.kt:720)
    at com.maxrave.simpmusic.ui.fragment.home.HomeFragment$sam$androidx_lifecycle_Observer$0.onChanged(Unknown Source:2)
    at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
    at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:146)
    at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged(LiveData.java:483)
    at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(LiveData.java:440)
    at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:322)
    at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:258)
    at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:294)
    at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:143)
    at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:126)
    at androidx.fragment.app.FragmentViewLifecycleOwner.handleLifecycleEvent(FragmentViewLifecycleOwner.java:100)
    at androidx.fragment.app.Fragment.performStart(Fragment.java:3194)
    at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:628)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:290)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1934)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
    at androidx.fragment.app.FragmentManager.popBackStackImmediate(FragmentManager.java:891)
    at androidx.fragment.app.FragmentManager.popBackStackImmediate(FragmentManager.java:797)
    at androidx.fragment.app.FragmentManager.handleOnBackPressed(FragmentManager.java:717)
    at androidx.fragment.app.FragmentManager$1.handleOnBackPressed(FragmentManager.java:447)
    at androidx.activity.OnBackPressedDispatcher.onBackPressed(OnBackPressedDispatcher.kt:276)
    at androidx.activity.ComponentActivity.onBackPressed(ComponentActivity.java:678)
    at android.app.Activity.onKeyUp(Activity.java:4140)
    at android.view.KeyEvent.dispatch(KeyEvent.java:3522)
    at android.app.Activity.dispatchKeyEvent(Activity.java:4488)
    at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:120)
    at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
    at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:138)
    at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:604)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:60)
    at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3413)
    at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:678)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:8369)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:8229)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7562)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7619)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7585)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7788)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7593)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7845)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7566)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7619)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7585)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7593)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7566)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7619)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7585)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7821)
    at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:8063)
    at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:4578)
    at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:4012)
    at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:4003)
    at android.view.inputmethod.InputMethodManager.-$$Nest$mfinishedInputEvent(Unknown Source:0)
    at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:4555)
    at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:335)
    at android.os.Looper.loopOnce(Looper.java:187)
    at android.os.Looper.loop(Looper.java:319)
    at android.app.ActivityThread.main(ActivityThread.java:8893)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

User actions: 
2024-03-08 18:26:56: MainActivity created
2024-03-08 18:26:57: MainActivity resumed
2024-03-08 18:26:57: MainActivity paused
2024-03-08 18:26:58: MainActivity resumed
2024-03-08 18:27:03: MainActivity paused
2024-03-08 18:27:18: MainActivity resumed
2024-03-08 18:27:23: MainActivity paused
2024-03-08 18:27:26: MainActivity resumed
2024-03-08 18:29:12: MainActivity paused
2024-03-08 18:37:02: MainActivity resumed
maxrave-dev commented 8 months ago

What exactly do you do?