Recursive entry to executePendingTransactions 异常处理

最近在项目开发中,偶现遇到

java.lang.IllegalStateException: Recursive entry to executePendingTransactions

E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1589)
E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
E/AndroidRuntime: at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
E/AndroidRuntime: at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:476)E/AndroidRuntime: at

异常,真是头大,也没说是代码哪里出错了

以下是我实现功能代码:

if (fm == null) {
            fm = getSupportFragmentManager();
        }

        if (!views.isEmpty()) {
            FragmentTransaction ft = fm.beginTransaction();
            for (Fragment f : views) {
                ft.remove(f);
            }
            ft.commitAllowingStateLoss();
            ft = null;
            fm.executePendingTransactions();
        }

        views.clear();
        views.add(new GranaryMapFragment_());
        views.add(new BasisGranaryInfoFragment_());
        views.add(new GranarySMartFragment_());
        views.add(new GrainInfoFragment_());
        views.add(new GeneralGrainInfoFragment_());
        views.add(new GrainReportFragmentNew_());
        views.add(new GranaryMapFragment_());
        views.add(new BasisGranaryInfoFragment_());

        adapter.notifyDataSetChanged();

弄来弄起,想着不会是fragment源码bug吧,自己看代码与网上查资料,都没找到解决办法

最后思来想去就是不知道原因是什么o(╥﹏╥)o,之后用蠢办法,一个个将加载的fragment 注释掉运行检查,最后发现是其中一个fragment 中控件出现空指针(捂脸 )导致的,也是醉了。

原来使用viewpager 加载fragment ,fragment内部出现问题有时候报错了,log也不会打印说那出现问题,就直接会报java.lang.IllegalStateException: Recursive entry to executePendingTransactions异常,因此遇到这样的问题,以后就只能用蠢办法一个个debug fragment是否正常了

愿那些跟我一样遇到这样问题的朋友看到这个,给你提供一个思考方向早日解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值