Kotlin gradle.build ZipException因为重复

时间:2016-11-25 14:16:40

标签: android gradle android-gradle kotlin

我将Kotlin添加到依赖的gradle.build(Kotlin版本1.0.4):

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

我发现它与我的其他依赖项存在冲突:

compile 'org.jetbrains:annotations-java5:15.0'

运行构建后,它会因ZipException而崩溃:

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/jetbrains/annotations/Nullable.class

我已尝试过的内容:

我试过这个解决方案: Kotlin,Java,multidex,Dagger 2,Butterknife and Realm: transformClassesWithJarMergingForDebug: duplicate entry: org/jetbrains/annotations/NotNull.class 但它结束了,不仅 Nullable.class NotNull.class 是重复的,而且来自 org / intellij / lang / annotations / 。

在我添加了五个课程后,它仍然崩溃了。是否有更好的方法来解决这个问题,不是手动添加导致此异常的每个类?

更新(02.02.16)

当我对这个问题进行了一些研究时,我发现对于我的项目,如果我删除了NonNls.class,那么缺少相关的注释类Contract.classorg.jetbrains:annotations-java5:15.0。它们不在kotlin-runtime中,而是在Jetbrains注释依赖项中。如何在不再添加Jetbrains注释依赖项的情况下添加它?

1 个答案:

答案 0 :(得分:0)

尝试使用而不是:

compile 'org.jetbrains:annotations-java5:15.0'

这样:

compile 'com.android.support:support-annotations:+'
默认情况下,Android支持库提供了类似Kotlin的一些最常用的注释,因此如果您使用@NonNull@Nullable@Null注释等基础,请删除上述依赖项。