My application in production has just had a cash report. Here is the following stack trace:
java.lang.ArithmeticException:
at expo.modules.av.progress.ProgressLooper.calculateNextInterval (ProgressLooper.kt:68)
at expo.modules.av.progress.ProgressLooper.scheduleNextTick (ProgressLooper.kt:54)
at expo.modules.av.progress.ProgressLooper.access$scheduleNextTick (ProgressLooper.kt:12)
at expo.modules.av.progress.ProgressLooper$scheduleNextTick$1.invoke (ProgressLooper.kt:59)
at expo.modules.av.progress.ProgressLooper$scheduleNextTick$1.invoke (ProgressLooper.kt:12)
at expo.modules.av.progress.AndroidLooperTimeMachine$sam$java_lang_Runnable$0.run (Unknown Source:2)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:246)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:226)
at java.lang.Thread.run (Thread.java:923)
My application loads a single audio file and uses the playAsync() method to play the track. This can get played multiple times throughout the application.
I am getting quite a few crashes in the av module. The latest stack trace is:
java.lang.RuntimeException:
at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5149)
at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:5179)
at android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:44)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2080)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7791)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:952)
Caused by: java.lang.reflect.InvocationTargetException:
at java.lang.reflect.Method.invoke (Native Method)
at expo.modules.ReactActivityDelegateWrapper.invokeDelegateMethod (ReactActivityDelegateWrapper.kt:166)
at expo.modules.ReactActivityDelegateWrapper.onDestroy (ReactActivityDelegateWrapper.kt:99)
at com.facebook.react.ReactActivity.onDestroy (ReactActivity.java:64)
at android.app.Activity.performDestroy (Activity.java:8358)
at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1345)
at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5134)
Caused by: java.util.ConcurrentModificationException:
at java.util.HashMap$HashIterator.nextNode (HashMap.java:1441)
at java.util.HashMap$ValueIterator.next (HashMap.java:1470)
at expo.modules.av.AVManager.onHostDestroy (AVManager.java:196)
at expo.modules.adapters.react.services.UIManagerModuleWrapper$3.onHostDestroy (UIManagerModuleWrapper.java:143)
at com.facebook.react.bridge.ReactContext.onHostDestroy (ReactContext.java:282)
at com.facebook.react.ReactInstanceManager.moveToBeforeCreateLifecycleState (ReactInstanceManager.java:746)
at com.facebook.react.ReactInstanceManager.onHostDestroy (ReactInstanceManager.java:640)
at com.facebook.react.ReactInstanceManager.onHostDestroy (ReactInstanceManager.java:654)
at com.facebook.react.ReactDelegate.onHostDestroy (ReactDelegate.java:73)
at com.facebook.react.ReactActivityDelegate.onDestroy (ReactActivityDelegate.java:109)
Is this caused by not clearing up the audio correctly when the app is closing / background?