空对象引用上的'boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()'

2 android fragment androidx

我收到此错误崩溃

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()' on a null object reference
Run Code Online (Sandbox Code Playgroud)

当活动onStop()以及从FragmentTransaction中删除片段时

我加了

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

    try {
        Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
        childFragmentManager.setAccessible(true);
        childFragmentManager.set(this, null);

    } catch (NoSuchFieldException e) {
        throw new RuntimeException(e);
    } catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我所有的片段,但这没有帮助

我的密码

FragmentTransaction t = getSupportFragmentManager().beginTransaction();
                    //t.replace(R.id.calendar1, weekendCaldroidFragment);
                    t.detach(weekendCaldroidFragment).add(R.id.calendar1, weekendCaldroidFragment).attach(weekendCaldroidFragment).commitNowAllowingStateLoss();
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 7

删除所有这些代码onDetach()-在Fragments的任何最新版本中都没有必要,而正是造成崩溃的原因。

  • @YashBhardwaj 感谢评论...我试图解决问题...之后查看官方页面,有解决问题的评论 https://github.com/vpotvin/CaldroidX (3认同)