NullPointerException in FragmentManager

我正在使用Android兼容性库,偶尔会得到一个奇怪的:NullPointerException

java.lang.NullPointerException
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:960)
    at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:768)
    at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1104)
    at android.support.v4.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:410)
    at android.support.v4.content.Loader.deliverResult(Loader.java:103)
    at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:81)
    at android.support.v4.content.CursorLoader.onStartLoading(CursorLoader.java:126)
    at android.support.v4.content.Loader.startLoading(Loader.java:197)
    at android.support.v4.app.LoaderManagerImpl$LoaderInfo.start(LoaderManager.java:262)
    at android.support.v4.app.LoaderManagerImpl.doStart(LoaderManager.java:710)
    at android.support.v4.app.Fragment.onStart(Fragment.java:981)
    at android.support.v4.app.Fragment.performStart(Fragment.java:1332)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:906)
    at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1240)
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
    at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433)
    at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405)
    at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:386)
    ...

显然,我做错了什么,让它们进入这样的状态,它可以像这样崩溃,但我不知道是什么。中的相关代码没有为我提供任何线索。我猜是以某种方式在代码中的那个点?但这似乎是不可能的,因为活动已经在屏幕上,我没有向它添加任何片段 - 只是在.FragmentManagerFragmentManagerImplmActivitynullViewPager


答案 1

好吧,伙计们,在我的头撞到砖墙上一段时间后,我发现这与我的片段声明直接相关。删除此内容后,问题消失了。这似乎是一个兼容性库错误...setRetainInstance(true)

我会在适当的谷歌项目下提出一些问题。祝你好运,如果你正在慢慢地抽泣着自己!我希望这将使您能够解决问题。


答案 2

几天前我遇到了这个错误,并且非常困惑,但我发现这是因为a似乎没有得到任何挂起的交易,所以当调用A时,就像这个被抛出一样。
我通过确保每个事务实际上都改变了某些东西来解决它(即添加片段1 ->删除片段1 ->提交/执行不起作用)。
还要确保寻呼机中的任何片段都没有变成 。FragmentTransactionexecutePendingTransactions();NPEnull


推荐