代码如下,
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.重新编译。