gpt4 book ai didi

android - FragmentManager - IllegalStateException - 无主机

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:46:07 24 4
gpt4 key购买 nike

我遇到了这个堆栈跟踪的非常奇怪的问题:

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)

我在多个 Android 版本(4.1.2、4.2.2、6.0)上跟踪了 4 次崩溃。我用了很多 Fragments ,这意味着我无法弄清楚抛出异常的确切位置。

代码FragmentManager :

void moveToState(int newState, int transit, int transitStyle, boolean always) {
if (mHost == null && newState != Fragment.INITIALIZING) {
throw new IllegalStateException("No host");
}
...
}

在我看来,当没有主机时会发生这种情况 Activity属于Fragment .我 ve read this exception is sometimes thrown when调用了 setRetainInstance()`,但我根本不使用它。

感谢您的每一个建议。

最佳答案

如果您嵌套了 Fragment(父 Activity 扩展了 FragmentActivity),则使用 getChildFragmentManager() 而不是 getFragmentManager()

您还可以使用 getSupportFragmentManager()

编辑:如果此 fragment 是另一个 fragment 的子 fragment ,则此处返回的 FragmentManager 将是父 fragment 的 getChildFragmentManager() .

注意:返回此 fragment 的宿主对象。如果 fragment 当前未被托管,则可能返回 null。看 http://developer.android.com/reference/android/app/Fragment.html#getHost()

关于android - FragmentManager - IllegalStateException - 无主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33210617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com