Android编译报错:unrecognized Attribute name MODULE 求解决建议
解决
java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE 编译错误 结合你提供的环境信息和错误栈,这个问题大多是JDK、Gradle插件、Kotlin版本不兼容或者注解处理环节出了问题,给你几个针对性的解决思路:
1. 切换到JDK 8编译
你当前用的是JDK 11,虽然AGP 4.0.1理论上支持JDK 11,但注解处理(kapt)在JDK 8环境下会更稳定,尤其是旧版本的AGP:
- 打开Android Studio,依次点击
File > Project Structure > SDK Location - 在
Gradle JDK选项中选择JDK 8(如果没有,点击Download JDK安装AdoptOpenJDK 8) - 重启AS后,执行命令:
gradlew clean assemble
2. 对齐Gradle、AGP和Kotlin版本
你的当前版本组合(AGP 4.0.1 + Gradle 6.1.1 + Kotlin 1.6.10)存在版本不匹配的问题,Kotlin 1.6.x需要搭配更高版本的AGP和Gradle:
- 修改项目根目录的
build.gradle:buildscript { dependencies { // 升级AGP到4.2.2(和Gradle 6.7.1兼容) classpath "com.android.tools.build:gradle:4.2.2" // Kotlin 1.6.10和AGP 4.2.2兼容,保持不变即可 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10" } } - 修改
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip - 同步项目后,执行
gradlew clean assemble
3. 检查并更新注解处理器依赖
错误栈显示问题出在kapt注解处理环节,你项目中使用的注解处理器(比如Room、Dagger、ButterKnife等)可能版本过高/过低,和当前AGP/Kotlin版本不兼容:
- 找到
build.gradle中kapt开头的依赖,比如Room:// 确保Room版本和Kotlin/AGP兼容,比如Room 2.4.3兼容Kotlin 1.6.x implementation "androidx.room:room-runtime:2.4.3" kapt "androidx.room:room-compiler:2.4.3" - 更新到对应兼容版本后,重新编译
4. 彻底清理缓存
除了gradlew clean,还要清理Android Studio的本地缓存:
- 点击
File > Invalidate Caches... - 勾选
Invalidate and Restart,等待AS重启并重新同步项目 - 再次执行
gradlew clean assemble
内容的提问来源于stack exchange,提问作者lzy187
相关产品推荐
相关产品推荐

