jrfeng / snow

Android music player framework, compatible with MediaSession. Support custom music player (MediaPlayer, ExoPlayer), custom Notification, custom audio effect engine, only WiFi network, sound quality/dynamic URL, headset clicks, sleep timer, playback history, player state persistence.
MIT License
190 stars 45 forks source link

Android13概率性发生 #62

Open LankyBin opened 1 month ago

LankyBin commented 1 month ago

概率出现:重启机器后打开音乐使用该服务,概率性出现闪退,一旦出现闪退,重启机器也不行(必须进设置清除该app缓存后才可恢复):

log如下

2024-06-03 20:22:51.513 10037-10037 AndroidRuntime com.relion.ct E FATAL EXCEPTION: main Process: com.relion.ct, PID: 10037 io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.IndexOutOfBoundsException: Index: 3, Size: 2 at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367) at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:65) at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81) at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7937) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015) Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 2 at java.util.ArrayList.get(ArrayList.java:437) at snow.player.playlist.Playlist.get(Playlist.java:198) at snow.player.AbstractPlayer.notifyInitialized(AbstractPlayer.java:1529) at snow.player.AbstractPlayer.access$3700(AbstractPlayer.java:53) at snow.player.AbstractPlayer$24.onFinished(AbstractPlayer.java:1512) at snow.player.PlaylistManagerImp$1.accept(PlaylistManagerImp.java:92) at snow.player.PlaylistManagerImp$1.accept(PlaylistManagerImp.java:89) at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62) at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)  at android.os.Handler.handleCallback(Handler.java:942)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loopOnce(Looper.java:201)  at android.os.Looper.loop(Looper.java:288)  at android.app.ActivityThread.main(ActivityThread.java:7937)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015) 

jrfeng commented 1 month ago

是做了什么操作,导致这个问题的原因是存储的 播放位置 大于 播放列表大小 导致的。

LankyBin commented 1 month ago

是做了什么操作,导致这个问题的原因是存储的 播放位置 大于 播放列表大小 导致的。

单纯的播放/重启机器,循环操作

jrfeng commented 1 month ago

不太可能是重启导致的,从报错信息看,是播放列表中只有 2 首歌,但播放位置是 3,然后启动 App 时导致初始失败抛出异常。