当我添加UCrop库版本2.2.3和Cometchat SDK版本1.6。+时,出现以下错误:
重复的类okhttp3.Address在模块okhttp-3.11.0.jar(com.squareup.okhttp3:okhttp:3.11.0)和okhttp-3.12.0.jar(com.cometchat:pro-android-chat- sdk:1.6.0)
问题在于,先前提出的问题都没有解决我问题的答案,因为其中大多数都使用了现在不推荐使用的“编译”方法。
我在此处阅读了有关同一主题的关于stackoverflow的许多问题,包括 this,this。
我还尝试从其中一个软件包中排除okhttp3库,以便仅使用
implementation('com.github.yalantis:ucrop:2.2.3' )
{
exclude group: 'com.cometchat', module: 'okhttp3'
}
如果有人可以向我解释如何在gradle中排除工作以及我编写的代码出了什么问题,我将不胜感激。
答案 0 :(得分:2)
尝试将其从okhttp3
组中排除com.cometchat
implementation('com.cometchat:pro-android-chat-sdk:1.6.0') {
configurations {
compile.exclude module: 'okhttp'
}
}
冲突是由于您的UCrop
和CometChat
依赖关系内部使用okhttp
库。要解决此问题,您必须排除冲突的库。
可以通过两种不同的方式来排除传递依赖。
- 按配置排除传递依赖
- 按依赖性排除传递性依赖性
要了解有关gradle dependency
冲突原因和解决方案的更多信息,请查看此链接
https://www.concretepage.com/build-tools/gradle/gradle-exclude-transitive-dependency-example