当前位置: 首页 > 面试题库 >

FragmentManager中的NullPointerException

濮丰
2023-03-14
问题内容

我正在使用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)
    ...

显然,我在做 一些
错误的操作,以允许FragmentManager它进入可能会像这样崩溃的状态,但是我不知道该怎么办。在相关的代码中FragmentManagerImpl没有提供我任何线索。我猜mActivity是某种null在代码中的那一点?但这似乎是不可能的,因为该活动已经在屏幕上了,并且我没有在其中添加任何片段-
只需在中进行切换即可ViewPager


问题答案:

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

我将在适当的Google项目下提出一些建议。祝您好运,如果您正在慢慢读这篇文章,请对自己说!我希望这将使您能够解决此问题。



 类似资料:
  • 我的应用程序一直在许多Android平台上报告这个问题(4.1、4.0.4、2.3.6.…)。但我无法在我的手机上复制这个问题。我已经在Google上搜索了这个问题,但堆栈跟踪似乎与我的不一样。

  • 我知道这听起来像是FragmentStatePagerAdapter IllegalStateException: 当前不在FragmentManager中,但他的解决方案与我的情况无关。 我很少遇到以下崩溃: 原因:java.lang.IllegalStateException:Fragment MyFragment{40648258 id=0x7f070051}当前不在Android.supp

  • 问题内容: 使用片段时,有时会出现以下异常: 当通过尝试从管理器中删除片段时,会通过调用of 发生异常。 我似乎无法弄清楚到底是什么原因造成的?我认为这与删除碎片时未正确清理碎片的堆栈有关。 问题答案: 回答我自己的问题: (最终)在您致电和 编辑:而且,就像两次圈出和ShinyuX在评论中指出的一样; 当调用or ,and 方法时,可能还 调用后,事务将在FragmentManager中排队。结

  • 更新:当我把nullcheks(fragment!=null,getActivity()!=null)放到任何我能放的地方时,崩溃就消失了。 我的应用程序正在使用ViewPager(屏幕外限制5)和用getSupportFragmentManager()初始化的FragmentStatePagerAdapter。每一页都有它自己的片段和后栈。 应用程序在启动时崩溃。问题只发生在preLollipo

  • 我正在使用此代码来清理我的背包到我的主视图: 我很确定这段代码以前是有效的,但现在backstack计数没有改变,没有片段被删除,这会导致内存不足异常,因为while循环一直在运行。 有人知道它是否有问题,或者最新版本的SDK工具中是否有bug吗。我不知道是什么导致了这个问题。

  • 我正面临着非常奇怪的问题与此堆栈跟踪: 我在多个Android版本(4.1.2、4.2.2、6.0)上跟踪了4次发生此崩溃的情况。我使用了大量的,这意味着我无法确定异常抛出的确切位置。 碎片管理器的代码: 在我看来,如果没有属于