解决项目中jar包冲突的终极方案
2018-09-30 本文已影响0人
betterHang
项目中经常会碰到jar包冲突,而很多情况下冲突的包是由于其他包依赖引入的,这个时候我们无法直接分辨冲突包是哪个依赖导致的,现在教你如何快速定位冲突包由哪个依赖引入的。
1.先配置gralde环境变量

具体配置方式参考:https://blog.csdn.net/u010042669/article/details/80914656
2.利用gradle命令找到项目中每个引用的依赖包,比如 你项目中使用com.android.support:cardview-v7:26.0.2中,而这个依赖会引入 com.android.support:support-annotations:26.0.2
命令:gradle host:dependencies

先进入要查询的项目根目录,host是application类型 module,通过这行命令可以遍历这个module中每个依赖的所有间接引用
结果如下:

通过这种方式就可以轻松定位引起冲突的依赖
3.找到冲突的包后,使用exclude group方式剔除

4.重新build后,再使用gradle host:dependencies查看依赖,已经没了

5.最后,引来了胜利,可以开始庆祝了!!!