You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Android Studio后Kotlin类出现ZipException重复条目问题求助

解决Android Studio 3.1 + Gradle 3.1.0升级后Kotlin类重复Entry的ZipException问题

你遇到的这个ZipException: duplicate entry异常,在升级Android Studio 3.1、Gradle构建工具3.1.0和Gradle Wrapper 4.4后只出现在Kotlin类上,而且移除一个类就转移到另一个,这大概率是Kotlin编译产物被重复打包导致的,和新Gradle插件的依赖管理、Kotlin插件兼容性有直接关系。下面是几个经过验证的解决方案:

1. 对齐Kotlin插件与Gradle插件版本

Gradle 4.4和Android Gradle插件3.1.0对Kotlin插件版本有一定要求,版本不匹配很容易引发编译冲突。建议你把Kotlin插件升级到兼容的稳定版本(比如1.2.71或更高),在项目根目录的build.gradle里修改:

buildscript {
    ext.kotlin_version = '1.2.71' // 可根据Gradle官方兼容表调整
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

2. 排查重复的依赖配置

检查所有模块的build.gradle,确认没有以下情况:

  • 同时混用旧版compile和新版implementation/api引入Kotlin相关依赖(比如kotlin-stdlib)
  • 同一个Kotlin模块被同时以源码依赖(implementation project(':xxx'))和jar包依赖(implementation files('libs/xxx.jar'))的方式引入

3. 彻底清理构建缓存

升级后旧的构建缓存可能残留冲突文件,执行以下步骤:

  • 先运行Gradle清理命令:
    ./gradlew clean
    
  • 然后清理Android Studio的缓存:点击菜单栏File -> Invalidate Caches / Restart...,选择Invalidate and Restart,重启后再重新构建项目。

4. 临时关闭Kotlin增量编译

部分情况下,增量编译和新Gradle插件的优化逻辑冲突,导致重复生成类文件。可以临时关闭增量编译测试:
在项目根目录的gradle.properties中添加:

kotlin.incremental=false

如果问题解决,后续可以尝试升级Kotlin插件到更高版本后再重新开启增量编译。

5. 统一编译版本配置

确保所有模块的Java和Kotlin编译版本一致,避免因版本差异导致编译产物不兼容:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

补充说明

Android Gradle插件3.1.x对依赖解析和编译流程做了不少优化,而Kotlin插件如果版本滞后,可能无法适配这些变化,导致Kotlin类的编译产物被多次打包到最终的构建产物中,从而触发重复entry的异常。按照上面的步骤逐一排查,基本能解决问题。

内容的提问来源于stack exchange,提问作者Ovidiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:13:38