Cra sh in Android 5 - исключение IllegalStateException, выброшенное внутри onResume - PullRequest
0 голосов
/ 19 июня 2020

Недавно мы получили sh отчеты в Crashlytics об исключении IllegalStateException, которое генерируется при вызове FramentTransaction.commit () внутри метода onResume нашего Activity. Как ни странно, эти сбои происходят только в Android 4 и 5. Трассировка стека выглядит следующим образом:

Caused by java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
   at androidx.fragment.app.FragmentManagerImpl.checkStateLoss(FragmentManagerImpl.java:2080)
   at androidx.fragment.app.FragmentManagerImpl.enqueueAction(FragmentManagerImpl.java:2106)
   at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:683)
   at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:637)
   ...
   at ...FragmentActivity.onResume(FragmentActivity.java:597)
   at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1267)
   at android.app.Activity.performResume(Activity.java:6186)
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3217)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3263)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1514)
   at android.os.Handler.dispatchMessage(Handler.java:111)
   at android.os.Looper.loop(Looper.java:194)
   at android.app.ActivityThread.main(ActivityThread.java:5637)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Я изо всех сил пытался придумать исправление для Cra sh, но закончилось с пустыми руками. На мой взгляд, это может произойти только тогда, когда onSaveInstanceState вызывается перед onResume, но как это вообще возможно? Есть ли способ воспроизвести это поведение?

...