请注意,在升级到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日志没有提及任何相关内容。
答案 0 :(得分:4)
更新回答
即使使用下面提到的解决方法,我仍然偶尔会遇到异常。现在Android Studio 3.1.1已经发布,问题已完全消失。只需确保同时更新到Gradle构建工具的3.1.1版,以及Gradle包装器的至少4.4版:
在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'
...
}
}
答案 1 :(得分:0)
我遇到了同样的问题,只是在修改以前编译的文件时它对我不起作用(干净的构建将起作用)。 将Android Gradle插件从3.1.3更改为3.2.0-beta02为我解决了这个问题。
答案 2 :(得分:-1)
解决将Java和Kotlin源拆分到单独模块中的问题。 不要在一个模块中混用Java和Kotlin。 甚至在我只有一个班级的情况下,它也会产生一些关于重复的奇怪错误