NullPointerException异常的FragmentManager [英] NullPointerException in 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屋!