Android Studio 3.1 gradle 构建抛出 java.util.zip.ZipException

Android Studio 3.1 gradle build throws java.util.zip.ZipException

升级到 Android Studio 3.0 后,我在 gradle 构建期间得到了这个:

Execution failed for task ':lf-android-myproject:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug'.

java.lang.RuntimeException: java.util.zip.ZipException: duplicate entry: com/my/package/name/SomeCustomView.class

有问题的 class 来自我的代码,它不是来自库。

只有我的 class 声明了自定义属性时才会发生这种情况:

<declare-styleable name="SomeCustomView">
    <attr name="someCustomViewText" format="reference|string" />
</declare-styleable>

我可以通过清理然后从控制台构建来修复它,但它最终会再次弹出。

我也可以通过重命名 class 或 styleable 来修复它,但我真的不想为了绕过 AS(或 gradle?)bug 而弄乱我们的代码将来可能会修复。

它是 Android Studio 错误吗?有什么解决方法吗?

Gradle版本为:gradle-4.1-all

Android Gradle插件版本为:3.0.1

这个问题可能有不同的原因。但是,这里有一种方法可以修复 Gradle 构建错误:“java.util.zip.ZipException:重复条目”

如果您更新了 android 项目中的一些库,然后在组装它(或类似的东西)时遇到以下错误:

原因是有些库有类似的依赖关系,所以编译器无法选择合适的。

根据日志,问题在重复的class org/intellij/lang/annotations/Identifier.class 要找到此 class 用法,您应该过滤详细的 gradle 日志:

修复它! 删除其中一个依赖项:

按照您的情况进行操作,我想您会找到解决方案。

我通过从项目和 re-importing 项目中删除 Android Studio 文件解决了这个问题。