-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Description
- Library version:1.3.5
- Support-v4 version:28.0.0
- Logs
11-11 15:05:35.162 21530 21530 E CrashHandler: UncaughtException detected: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2080)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2106)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:832)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentationMagician$3.run(FragmentationMagician.java:121)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentationMagician.a(FragmentationMagician.java:194)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.support.v4.app.FragmentationMagician.a(FragmentationMagician.java:118)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.TransactionDelegate.safePopTo(TransactionDelegate.java:574)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.TransactionDelegate.mockPopToAnim(TransactionDelegate.java:604)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.TransactionDelegate.doPopTo(TransactionDelegate.java:561)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.TransactionDelegate.access$1300(TransactionDelegate.java:32)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.TransactionDelegate$11.a(TransactionDelegate.java:289)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.queue.ActionQueue.a(ActionQueue.java:53)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.queue.ActionQueue.b(ActionQueue.java:45)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.queue.ActionQueue.a(ActionQueue.java:17)
11-11 15:05:35.162 21530 21530 E CrashHandler: at me.yokeyword.fragmentation.queue.ActionQueue$1.run(ActionQueue.java:37)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.os.Handler.handleCallback(Handler.java:836)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.os.Handler.dispatchMessage(Handler.java:103)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.os.Looper.loop(Looper.java:203)
11-11 15:05:35.162 21530 21530 E CrashHandler: at android.app.ActivityThread.main(ActivityThread.java:6275)
11-11 15:05:35.162 21530 21530 E CrashHandler: at java.lang.reflect.Method.invoke(Native Method)
11-11 15:05:35.162 21530 21530 E CrashHandler: at com.android.internal.os.ZygoteInit$Metho
最近升级support包到28包之后突然出现比较多的这种类型崩溃。之前有看到 #863 报出相似问题,看了下修复的代码的逻辑方式还是单独判断mStateSaved。
public static boolean isStateSaved(FragmentManager fragmentManager) {
if (!(fragmentManager instanceof FragmentManagerImpl))
return false;
try {
FragmentManagerImpl fragmentManagerImpl = (FragmentManagerImpl) fragmentManager;
return fragmentManagerImpl.mStateSaved;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
private static void hookStateSaved(FragmentManager fragmentManager, Runnable runnable) {
if (!(fragmentManager instanceof FragmentManagerImpl)) return;
FragmentManagerImpl fragmentManagerImpl = (FragmentManagerImpl) fragmentManager;
if (isStateSaved(fragmentManager)) {
fragmentManagerImpl.mStateSaved = false;
compatRunAction(fragmentManagerImpl, runnable);
fragmentManagerImpl.mStateSaved = true;
} else {
runnable.run();
}
}
是否会存在mStopped == true. mStateSaved == false的情况导致出现目前的崩溃
wilsonssss
Metadata
Metadata
Assignees
Labels
No labels