Android Studio 包冲突解决方法

在为项目加入环信时遇到了包冲突
library:easeui-sdk3.0
环信和原先的项目都使用到了glide,版本不一致,重复引发了冲突
1.如何查找哪个jar冲突了

a.一般如果冲突了,在编译的时候就会出现错误,根据出现的错误就可以知道那个包冲突
b.还有一个方法比较直观
在项目的.idea->libraries可以看到重复引用,到可能版本不同的包
这里写图片描述
会看到竟然有glide的三个版本,glide_3_6_1是环信的library中的
3.5.2和3.6.0版本是原先项目有的。
其中 3.5.2是我明确引入的,而3.6.0是我原本项目引入的一个library里面隐式使用的(如何找到这个隐式的使用,下面会介绍)
2.如何解决
第一步、把原先项目显示使用的3.5.2去掉
如果和library冲突,去除本地原先有的,因为最终library要加入项目中,如果去除library里,library会直接报错了。
第二步、查找隐式使用
打开Terminal
输入:

./gradlew -q app:dependencies

app替换成你的module名称
搜索glide,会发现,隐藏引用glide那个库
3.去除重复引用的库
原先

compile 'com.jph.takephoto:takephoto_library:4.0.0'

改为

compile('com.jph.takephoto:takephoto_library:4.0.0') {
        exclude group: 'com.github.bumptech.glide'
    }

去除com.jph.takephoto:takephoto_library:4.0.0
里面的glide

你可能感兴趣的:(android)