FragmentManager - IllegalStateException异常 - 无主机
我现在面临很奇怪的问题,这个堆栈跟踪:FragmentManager - IllegalStateException异常 - 无主机
Fatal Exception: java.lang.IllegalStateException No host
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1194)
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1189)
android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:2001)
android.support.v4.app.Fragment.performActivityCreated (Fragment.java:1976)
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1051)
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1207)
android.support.v4.app.BackStackRecord.run (BackStackRecord.java:738)
android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1572)
android.support.v4.app.FragmentManagerImpl$1.run (FragmentManager.java:493)
android.os.Handler.handleCallback (Handler.java:733)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:146)
android.app.ActivityThread.main (ActivityThread.java:5593)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1283)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099)
dalvik.system.NativeStart.main (NativeStart.java)
我跟踪4个OCCURENCES此崩溃多的Android版本(4.1.2,4.2.2,6.0)的。我使用了很多Fragments
,这意味着我无法弄清楚抛出异常的位置。
代码FragmentManager
:
void moveToState(int newState, int transit, int transitStyle, boolean always) {
if (mHost == null && newState != Fragment.INITIALIZING) {
throw new IllegalStateException("No host");
}
...
}
在我看来,出现这种情况时,有属于Fragment
没有主机Activity
。我调用了setRetainInstance()`,但我根本不使用它。
感谢您的每一个建议。
如果嵌套Fragment
(其父活动扩展FragmentActivity),则使用getChildFragmentManager()
而不是getFragmentManager()
。您可以使用getSupportFragmentManager()
。
编辑: 如果该片段是另一片段的孩子,FragmentManager返回这里将成为母公司的getChildFragmentManager()。
注意: 返回此片段的主机对象。如果片段当前没有托管,可能会返回null。见 http://developer.android.com/reference/android/app/Fragment.html#getHost()
我有同样的问题,这似乎是相关的问题:https://code.google.com/p/android/issues/detail?id=42601。在以前版本的支持v4库中,例外是java.lang.IllegalStateException: No activity
。
我已经尝试了解决方法#10,但它并没有为我工作。
我不知道为什么你会得到这个错误。我得到这个错误,当我重复使用片段,而不是调用
fragmentManager.executePendingTransactions()
嗨,大家好,你有任何解决方案,这个问题呢? –