更新Gradle库与AS后,Android Kotlin+Hilt项目构建失败求助
解决
kotlinx.metadata.jvm.KotlinClassMetadata.read不存在导致的构建失败问题 这个报错核心原因是依赖版本不兼容,尤其是Kotlin、Hilt、kotlinx-metadata-jvm之间的版本匹配冲突,或是多模块中依赖版本不一致。以下是针对性的解决步骤:
1. 强制统一所有模块的kotlinx-metadata-jvm版本
多模块项目中,不同模块可能间接引入不同版本的kotlinx-metadata-jvm,导致版本冲突。在项目根目录的构建文件中添加强制统一配置:
Groovy DSL(build.gradle)
allprojects { configurations.all { resolutionStrategy { // 版本需与你的Kotlin版本匹配,比如Kotlin 1.8.x对应0.6.0,1.9.x对应0.7.0 force "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.0" } } }
Kotlin DSL(build.gradle.kts)
allprojects { configurations.all { resolutionStrategy.force("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.0") } }
版本匹配参考:
- Kotlin 1.7.x → 0.5.0
- Kotlin 1.8.x → 0.6.0
- Kotlin 1.9.x → 0.7.0
2. 确保Hilt与Kotlin、AGP版本完全匹配
Hilt对Kotlin和Android Gradle Plugin(AGP)版本有严格兼容性要求,必须对应正确:
- 根构建文件中统一所有插件版本:
Groovy DSL
buildscript { ext { hilt_version = "2.48" kotlin_version = "1.8.22" agp_version = "7.4.2" // 对应Electric Eel的AGP版本 } dependencies { classpath "com.android.tools.build:gradle:$agp_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version" } }
Kotlin DSL
plugins { id("com.android.application") version "7.4.2" apply false id("org.jetbrains.kotlin.android") version "1.8.22" apply false id("com.google.dagger.hilt.android") version "2.48" apply false }
3. 彻底清理构建缓存并重新同步
- 在Android Studio中执行
File → Invalidate Caches... → Invalidate and Restart - 手动删除项目根目录的
.gradle、build文件夹,以及各模块下的build文件夹 - 执行命令
./gradlew clean build重新构建
4. 检查模块依赖传递
- 打开
Common模块的构建文件,移除任何显式引入的旧版kotlinx-metadata-jvm依赖 - 执行
./gradlew :Common:dependencies查看依赖树,确认kotlinx-metadata-jvm的所有引入来源版本统一
5. 适配Android Studio版本
你的Electric Eel(2022.1.1)对应AGP 7.4.x,建议搭配Kotlin 1.8.x、Hilt 2.48及以上版本。若上述步骤无效,可尝试将AS升级到Electric Eel的最新补丁版本,或调整为更稳定的AGP/Kotlin组合。
内容的提问来源于stack exchange,提问作者Diego Perez
相关产品推荐
相关产品推荐

