gpt4 book ai didi

android - 尝试在空对象引用上调用虚拟方法 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()'

转载 作者:IT王子 更新时间:2023-10-28 23:28:27 29 4
gpt4 key购买 nike

我的应用程序包含 4 个 fragment 作为标签,使用 FragmentPagerAdapter 在父 fragment 中加载。

问题是当我运行应用程序并按下并重新打开应用程序时,我收到此错误日志:

FATAL EXCEPTION: main
java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference
at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513)
...

父Fragment里面的代码行是:

viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);

ViewPageAdapter都不为空!!

我不得不提一下,我的所有 Fragment 生命周期都在管理中,并且适配器内部发生了 null 问题!当我使用 Activity< 时,同一个适配器工作正常 作为父级而不是 Fragment!!!

最佳答案

经过大量研究,看起来是支持库问题:

Activity with fragment and ViewPager crashesh on configuration change
Android Support Library issue 24.1.0

我也找到了这个答案,但在我的代码中添加标志看起来很不寻常:

Attempt to invoke virtual method ‘android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()’ on a null object

我像这样覆盖了我的 FragmentPagerAdapterfinishUpdate 方法,问题现在解决了!

@Override
public void finishUpdate(ViewGroup container) {
try{
super.finishUpdate(container);
} catch (NullPointerException nullPointerException){
System.out.println("Catch the NullPointerException in FragmentPagerAdapter.finishUpdate");
}
}

有更好的答案吗?请告诉我...

关于android - 尝试在空对象引用上调用虚拟方法 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650721/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com