之前在做即时通讯的时候用的即时通讯云环信,在引用环信easeUI的使用出现的包引用冲突的问题。
原因
1、easeui引用的libs和主项目中引用相同的jar包
因为如果删除摸个jar包的话代码的改动比较大,所以在类库的buile.gradle中使用
provided fileTree(include: ['*.jar'], dir: 'libs')
使用provided只允许在本类库中使用此jar包。
2、gliede版本的问题,easeui和主项目中都用到了glide但是版本不一样,类库中用的是glide3,主项目中用的glide4,运行时出现了方法找不到的问题。这是要求类库的第三番引用要和主项目中的一样,同时easeui的glide方法也要相应的改动,glide4和glide3在用法不太一样。
3、为了防止防止类库的版本问题在build.gradle中设置
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}