加入第三方sdk后包冲突引起的找不到符号 commitNow() ,commitNowAllowingStateLoss()系列问题的解决

代码如下,

getSupportFragmentManager()
        .beginTransaction()
        .remove((Fragment) view)
        .commitNowAllowingStateLoss();

编译异常,提示找不到符号commitNowAllowingStateLoss()

  FragmentTransaction transaction = mFragmentManager.beginTransaction();
        List<Fragment> fragments = mFragmentManager.getFragments();
        if (transaction == null || fragments == null || fragments.size() == 0)
            return;
        boolean doCommit = false;
        for (Fragment fragment : fragments) {
            if (fragment != this) {
                transaction.remove(fragment);
                doCommit = true;
            }
        }
        if (doCommit)
            transaction.commitNow();

提示找不到符号commitNow()

引入第三方sdk后这样的。分析是support v4包的兼容性问题。

其间走了很多弯路,比如修改gradle文件 添加

     configurations {
         all*.exclude group: 'com.android.support', module: 'support-v4'
        all*.exclude group:'com.android.support', module:'support-annotations'
     }

发现无效。

解决办法:
1.解除关联,删除module。删除module中的build.gradle文件,导入到项目,自动生成module的gradle文件,如果不能,重复上述操作。
2.确保 项目与module中的v4版本号一致。
3.重新编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值