更新Android Studio后gradlew assemble报Kotlin冲突及kapt错误
编译报错修复方案
两个报错属于关联问题,触发原因是更新Android Studio Chipmunk后默认Gradle JDK版本切换+项目内Kotlin依赖版本混乱,按以下步骤操作即可修复:
1. 统一全链路Kotlin依赖版本
首先解决classpath下Kotlin JAR版本不一致的警告,版本冲突会直接导致kapt运行时类加载异常:
- 打开项目根目录
build.gradle,将kotlin-gradle-plugin版本统一为1.6.10(和你当前Android Studio内置的Kotlin插件版本对齐)。 - 全局排查所有模块的依赖声明,删除所有写死版本号的
kotlin-reflect引入,所有Kotlin官方组件(stdlib、reflect、协程等)版本必须和Gradle插件版本完全一致。 - 如果存在三方库间接引入低版本Kotlin组件的情况,在app模块
build.gradle中添加强制版本规则,彻底锁死版本:
configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:1.6.10" force "org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10" force "org.jetbrains.kotlin:kotlin-reflect:1.6.10" } }
- 同步Gradle后执行
./gradlew app:dependencies | grep kotlin,确认输出中所有Kotlin依赖均为1.6.10版本,无1.3、1.5版本残留。
2. 修复kapt的JDK模块访问异常
你遇到的java.lang.IllegalAccessError是Android Studio Chipmunk的默认配置变更导致:该版本开始内置Gradle运行时为JDK 17,而Kotlin 1.6.10及更早版本的kapt组件未适配JDK 17的模块访问限制,无法读取JDK compiler模块的内部类。两种修复方案二选一即可:
方案A(推荐,无兼容风险)
- 打开Android Studio设置,路径为
Settings > Build, Execution, Deployment > Build Tools > Gradle - 将
Gradle JDK选项从默认的Embedded JDK (Version 17)切换为本地安装的JDK 11,保存设置。 - 执行
./gradlew clean清空历史构建缓存,重新执行./gradlew assemble即可正常构建,流水线环境也需要将构建机的Gradle JDK版本调整为JDK11即可恢复正常。
方案B(适配JDK17场景)
如果项目需要使用JDK17作为构建运行时,直接将项目Kotlin版本升级到1.7.0及以上稳定版,从该版本开始kapt正式适配JDK17的模块导出规则,不需要额外添加JVM启动参数。升级后记得同步对齐所有Kotlin相关依赖、kapt插件的版本号,清理缓存后重新构建。
额外排查项
如果上述操作后仍有报错:
- 检查所有使用kapt引入的注解处理器(Room、Dagger/Hilt、ButterKnife、Glide注解生成器等),将其升级到支持Kotlin 1.6+、JDK11+的最新稳定版,老版本注解处理器也会触发同类JDK访问限制问题。
- 不要通过添加
--add-exportsJVM参数的方式硬绕模块限制,后续升级AGP、Kotlin版本时会留下隐性兼容问题。
内容的提问来源于stack exchange,提问作者Dawid Długosz
相关产品推荐
相关产品推荐

