【问题标题】:TransformException for duplicate class entry重复类条目的 TransformException
【发布时间】:2017-03-14 21:05:20
【问题描述】:

我在一个带有远程显示 API 的 Chromecast 项目中得到了“Error converting bytecode to dex”。我通过添加“multiDexEnabled true”解决了这个问题,但这只会产生另一个错误:

错误:任务执行失败 ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException:重复条目: com/google/android/gms/internal/zzlg.class

我检查了我的Gradle 文件,但找不到任何冲突。我阅读了其他类似的线程并尝试了他们的代码修复,但在这里没有用。我该如何继续?这些是我的 gradle 文件:

Gradle files

【问题讨论】:

    标签: java android gradle chromecast


    【解决方案1】:

    首先,尝试清理/重建项目,因为通常这种错误会在你清理/重建项目后消失。

    从此documentation,当您在 gradle.files 中添加 multiDexEnabled true 时,请确保您还在依赖项中添加了 compile 'com.android.support:multidex:x.x.x'

    有关更多信息,请查看以下相关 SO 问题:

    【讨论】:

      【解决方案2】:

      您可能会多次编译同一个依赖项。例如,play-services-cast 依赖于 appcompat-v7。您可以使用以下命令防止重新编译相同的依赖项:

      compile ('com.google.android.gms:play-services-cast:8.3.+')
      {
          exclude group: 'com.android.support', module: 'appcompat-v7'
      }
      

      使用 shell 命令gradlew -q YourApp:dependencies 打印应用的依赖图;然后在您的 build.gradle 中,排除多次出现的依赖项。

      【讨论】:

        猜你喜欢
        • 2015-12-28
        • 1970-01-01
        • 1970-01-01
        • 2018-09-12
        • 2016-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多