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

来源:互联网 发布:数据挖掘r语言实战微盘 编辑:程序博客网 时间:2024/06/02 02:23

代码如下,

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.重新编译。

0 0