NullPointerException异常的FragmentManager [英] NullPointerException in FragmentManager

查看:210
本文介绍了NullPointerException异常的FragmentManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用了Android兼容性库,偶尔得到一个奇怪的 NullPointerException异常

I'm using the Android compatibility library and occasionally get a weird 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 来进入这样的状态,它可能会崩溃这样,但我有没有什么线索。该<一href="https://github.com/grantland/android-support-v4/blob/master/src/java/android/support/v4/app/FragmentManager.java#L960">relevant在code 中的 FragmentManagerImpl 不提供我任何线索。我猜 mActivity 是某种在在code这一点?但是,这似乎是不可能的,因为该活动已经在屏幕上,我不添加任何碎片给它 - 其中只是交换了 ViewPager

Obviously, I'm doing something wrong to allow the FragmentManager to get into such a state where it can crash like this, but I have no clue what. The relevant code in the FragmentManagerImpl is not offering me any clues. I'm guessing mActivity is somehow null at that point in the code? But that seems impossible as the activity is already on the screen and I'm not adding any fragments to it — just switching among them in a ViewPager.

推荐答案

好球员,打我的头撞墙了,​​而在这之后,我发现,这是直接与我片段的申报相关 setRetainInstance(真)。删除此之后,问题就走开了。这似乎是一个兼容库的错误...

Ok guys, after hitting my head against a brick wall for a while on this I found that this was directly associated with my fragment's declaration of setRetainInstance(true). After removing this the problems went away. This appears to be a compatibility library bug...

我会提高相应的谷歌项目下的东西。 祝你好运,如果你正在读这篇慢慢sobbering自己!我希望这将让你解决问题。

I will raise something under the appropriate Google project. Best of luck if you are reading this slowly sobbering to yourself! I hope this will allow you to work around the problem.

这篇关于NullPointerException异常的FragmentManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆