【发布时间】:2019-06-06 11:03:49
【问题描述】:
我正在使用 BottomsheetDialogFragment,最近收到有关 crashlytics 的崩溃报告,堆栈跟踪是 -
致命异常:java.lang.IllegalStateException:无法执行此操作 onSaveInstanceState 之后的操作 在 android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2044) 在 android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2067) 在 android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:680) 在 android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:634) 在 android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java:205) 在 android.support.v4.app.DialogFragment.dismiss(DialogFragment.java:171) 在 com.khaalijeb.inkdrops.ListBanks.onSuccessResponse(ListBanks.java:322) 在 com.khaalijeb.inkdrops.App.onSuccessResponse(App.java:800) 在 com.olive.upi.OliveUpiManager.onSuccessResponse(未知来源:970) 在 com.olive.upi.transport.d$33.onResponse(未知来源:16) 在改造2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 在 android.os.Handler.handleCallback(Handler.java:789) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:169) 在 android.app.ActivityThread.main(ActivityThread.java:6595) 在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
我不知道是什么导致了这个错误,因为它不是在某些设备中发生,而不是在所有设备中发生。有没有人更早遇到过这个问题以及如何克服它?
我已经测试了这个特定的代码 1000 次,但从来没有得到一个,但是在生产环境中,我在大约 2 3 台设备中遇到了这个错误。
如何调用commitAllowingStateLoss();?这会解决问题吗?
【问题讨论】:
-
是什么原因造成的?我的 Activity 是否再次恢复,而 bottomsheetfragment 无法恢复?
-
嗨@AmanVerma 我在制作领域也面临同样的问题。你找到解决方案了吗?如果是,请分享。
-
FragmentTransaction 事务 = getActivity().getSupportFragmentManager().beginTransaction(); BottomSheetDialogFragment Fragment = new BottomSheetDialogFragment(); transaction.add(Fragment, "加载"); transaction.commitAllowingStateLoss();
标签: android android-fragments android-dialogfragment bottom-sheet