【问题标题】:ZipException: duplicate entry on Kotlin classesZipException:Kotlin 类上的重复条目
【发布时间】:2018-09-12 17:02:06
【问题描述】:

请注意此项目在升级到 Android Studio 3.1、Gradle 构建工具 3.1.0 和 Gradle Wrapper 4.4 之前编译成功。

Gradle 任务 transformClassesAndResourcesWithPrepareIntermediateJarsForSomethingDebug 期间发生异常:

Caused by: java.util.zip.ZipException: duplicate entry: com/me/utils/model/singleModel/NodeModel.class

请注意,该异常仅发生在 Kotlin 类(如上面的 NodeModel)上。如果我删除这个类,异常将发生在下一个 Kotlin 类中。

在 SO 上提到此异常的所有其他问题都与项目依赖项中的重复第三方库有关。但这不是我的情况,因为 NodeModel 是我自己编写的自定义类。它实际上只是一个简单的 Kotlin 数据类。

该项目使用 Kotlin 版本 1.2.30,构建工具 27.0.3,支持库 27.1.0 和 Firebase 12.0.1。

我曾多次尝试清理和重建项目,在本地 JDK 和嵌入式 JDK 之间切换,没有任何效果。

我尝试使用 --stacktrace --debug 运行 Gradle 以找出重复项来自何处,但 Gradle 日志未提及任何相关内容。

【问题讨论】:

  • 您是否尝试过使缓存无效并重新启动?
  • @sunil 是的,但结果相同。
  • 多模块项目的已知问题。查看这篇文章:medium.com/@terrakok/…

标签: android android-gradle-plugin android-studio-3.1


【解决方案1】:

更新答案

即使使用下面提到的解决方法,我仍然偶尔会遇到异常。现在 Android Studio 3.1.1 已经发布,这个问题已经完全消失了。只需确保同时更新到 Gradle 构建工具的 3.1.1 版,以及至少 4.4 版的 Gradle 包装器:

gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

在项目的build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        ...
    }
}

初步回答

将 Gradle Wrapper 版本增加到 4.6 为我修复了它,但只是暂时的。第二天又出现异常。

到目前为止,我发现的唯一可行的解​​决方案是将 Gradle Wrapper 降级回 4.3.1,并将 Gradle 构建工具降级到 3.0.0,直到有新的稳定版本的 Gradle 构建工具可用。

gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip

在项目的build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        ...
    }
}

【讨论】:

  • 此修复仍然有效吗?我对最新的 Android 版本、Gradle 4.4 和 Gradle 插件 3.1.2 也有同样的问题
  • 我也在中间得到这个,它很烦人:(
【解决方案2】:

我遇到了同样的问题,只是在修改以前编译的文件时它对我不起作用(干净的构建可以工作)。 将 Android Gradle 插件从 3.1.3 更改为 3.2.0-beta02 为我解决了这个问题。

【讨论】:

    【解决方案3】:

    解决将 java 和 kotlin 源代码拆分为单独模块的问题。 不要在一个模块中混合使用 java 和 kotlin。 它会产生一些关于重复的奇怪错误,即使我只有一个类

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多