Android引入库版本不一致出现的重复问题导致编译失败
如图,此类问题多是由于当前工程引入了某个库(记为A)的一个版本,然后当前工程引入的其他库中又引用了A库的另一个版本,从而导致的编译不通过。这种问题,关键是在找到具体是哪个库中嵌套引用了A库。
解决方法:
1、Build -> Clean Project
很多时候库冲突仅仅是因为,上次编译的缓存没有清除,所以提示存在版本不一样的两个库。这种就只需要Clean工程后再运行即可。
假若仍提示duplicate,则继续往下。
2、 寻找具体是哪个库中嵌套引用了A库。
AndroidStudio点击右边的Gradle -> 主moudle -> Tasks -> android -> androidDependencies
如图:
从而生成库的依赖日志,在日志中查看A库具体的引用之处(记为库B),即可找到冲突的原因所在。依赖日志例子如下图:
3、在步骤2中找到了重复引用处后,即可采用以下方案解决:
- ) 查看B库是否需要更新,可能B库更新后,其内部引用的A库版本号和当前项目的A库就相同了。
- ) 或者在B库引用处添加 exclude 将A库exclude掉。例如:
debugCompile(‘com.xxx.xxxxxxxxxx’) {
exclude group: ‘com.facebook.android’
exclude group: “com.android.support”
exclude group: “com.android.volley”
}