【问题标题】:Gradle "Duplicate class" error when adding uCrop and Cometchat libraries添加 uCrop 和 Cometchat 库时出现 Gradle“重复类”错误
【发布时间】:2019-06-11 14:18:40
【问题描述】:

当我添加 UCrop 库版本 2.2.3 和 Cometchat SDK 版本 1.6.+ 时,我收到以下错误:

在模块 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'
  }

如果有人能向我解释 excludes 在 gradle 中的工作原理以及我编写的代码有什么问题,我将不胜感激。

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    不要从com.cometchat 组中排除okhttp3,而是尝试这样做

    implementation('com.cometchat:pro-android-chat-sdk:1.6.0') {
            configurations {
                compile.exclude module: 'okhttp'
            }
        }
    

    冲突是由于您的UCropCometChat 依赖在内部使用okhttp 库。要解决此问题,您必须排除冲突库。

    排除传递依赖可以通过两种不同的方式完成。

    1. 通过配置排除传递依赖
    2. 按依赖排除传递依赖

    要阅读有关gradle dependency 冲突原因和解决方案的更多信息,您可以查看此链接 https://www.concretepage.com/build-tools/gradle/gradle-exclude-transitive-dependency-example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多