gpt4 book ai didi

android - IllegalStateException:没有 Activity FragmentManager.java

转载 作者:行者123 更新时间:2023-11-29 01:25:43 24 4
gpt4 key购买 nike

我正在使用 Eclipse 编译应用程序,我曾经遇到过这个错误,但不是很多。但是自从我切换到 android studio 后,我经常遇到这种崩溃。几乎每台设备都会崩溃。我已尝试做所有事情,但似乎无法解决此问题。我试过同时使用 getfragmentManager() 和 getSupportFragmentManager(),但两者都发生了崩溃。不确定现在该做什么?

下面是我用来切换 fragment 的代码。

private void showFragment(Fragment fragment){
fragmentManager = getFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
if (!fragment.isAdded()) {
fragmentTransaction.replace(R.id.home_frame, fragment).commitAllowingStateLoss();
currentFragment = fragment;
}
}

我所有的 fragment 都扩展了一个具有以下代码的基本 fragment

private static final Field sChildFragmentManagerField;

static {
Field f = null;
try {
f = Fragment.class.getDeclaredField("mChildFragmentManager");
f.setAccessible(true);
} catch (NoSuchFieldException e) {
Log.wtf("LOGTAG", "Error getting mChildFragmentManager field", e);
}
sChildFragmentManagerField = f;
}

@Override
public void onDetach() {
super.onDetach();

if (sChildFragmentManagerField != null) {
try {
sChildFragmentManagerField.set(this, null);
} catch (Exception e) {
Log.e("LOGTAG", "Error setting mChildFragmentManager field", e);
}
}

}

请帮忙。我在商店中遇到大量崩溃和差评。

下面是我的堆栈跟踪

Fatal Exception: java.lang.IllegalStateException: No activity
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1054)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1049)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1871)
at android.app.Fragment.performActivityCreated(Fragment.java:2067)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:912)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.app.BackStackRecord.run(BackStackRecord.java:833)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447)

最佳答案

好吧,我到处搜索都找不到修复程序。但是通过进行以下两项更改,我能够解决问题。

首先,我不是每次都将 getChildFragmentManager() 作为参数传递,而是在应用程序类中创建一个对象并使用它。

其次,显然我在同一个 fragment 中使用了两次 getChildFragmentManager(),即我有两个嵌套的 fragment 。我删除了一个。

关于android - IllegalStateException:没有 Activity FragmentManager.java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207353/

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