【问题标题】:Duplicate libraries in two different project modules两个不同项目模块中的重复库
【发布时间】:2015-10-05 09:18:27
【问题描述】:

我有两个模块的项目。 我正在使用 SalesforceSDK,它作为单独的模块包含在 SalesforceSDK 内部,我有 Cordova 使用 okhttp。 在第二个模块中,我也有使用 okhttp 的改造库,当我尝试构建项目时,我得到了

dex 文件重复错误

我尝试从 SalesforceSDK 中删除 okhttp 依赖项并将其包含在我的第二个模块中,但我得到了

符号未找到错误

剩下要做的就是将okhttp 包含为不同的模块,但在此之前我想问您是否有其他方法可以解决此问题?

编辑:

我尝试了 Aayushi 提出的解决方案,但仍然出现错误:

错误:任务执行失败 ':app:packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException:重复条目:com/squareup/okhttp/Address.class

【问题讨论】:

    标签: android cordova salesforce retrofit okhttp


    【解决方案1】:

    如果您使用的是 android studio,则无需删除,您可以同时使用这两个库

    只是使用

    android {
        defaultConfig {
         ...
          multiDexEnabled = true
      }
    }
    

    也需要使用这个语句

    dependencies 
    {
        compile 'com.android.support:multidex:1.0.0'
    }
    

    【讨论】:

    • 我试过了,又出错了。有关更多信息,请查看我的编辑
    • 如果您也遇到错误,那么您还要添加 compile('nameoflibrary') { exclude group: 'com.google.android', module: 'support-v4' exclude group: 'com. android.support',模块:'support-v7' 排除组:'org.json',模块:'json' }
    • 还 packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' }跨度>
    【解决方案2】:

    看看jarjar,它可以让你在一个地方使用一个版本的OkHttp,在另一个地方使用另一个版本。

    还有其他类似的工具(阴影),大多数都适合你。

    【讨论】:

      【解决方案3】:

      对于这个问题,我还有另一个解决方案。 首先,我运行这个命令行:

      这是结果:

      我看到 Paypal 也使用 okhttp 库。所以,我在 gradlew 中添加了这一行:

      compile('com.paypal.sdk:paypal-android-sdk:2.13.3')
              {
                  exclude group: 'com.squareup.okhttp3', module: 'okhttp'
              }
      

      它对我来说也很好用。

      【讨论】:

        【解决方案4】:

        我可以通过以下方式解决问题 - https://developer.android.com/studio/build/dependencies#duplicate_classes

        就我而言,cordova-android-3.3.0.jar 是 2 个不同项目的依赖项,其中一个是另一个项目的依赖项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多