Kotlin升级至1.7.0后Hilt2.42报元数据版本错误如何解决
运行时报错信息
Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException
问题场景
- 项目Kotlin版本从1.6.10升级至1.7.0,原标准库依赖为
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10',升级后替换为implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0' - 项目当前使用Hilt版本为2.42,Kotlin 1.6.10搭配该版本Hilt可正常运行,升级Kotlin后触发上述报错,要求不降级Kotlin版本完成修复。
问题原因
Hilt 2.42内置的Kotlin元数据解析器最高仅支持Kotlin 1.6.x系列编译产出的元数据格式,Kotlin 1.7.0调整了元数据版本号,旧版解析器识别失败直接抛出异常。
修复步骤
无需降级Kotlin版本,直接升级Hilt到适配Kotlin 1.7的稳定版本即可:
- 打开项目根目录的Gradle配置文件,将Hilt插件版本从2.42修改为
2.43.2(该版本为官方正式适配Kotlin 1.7的稳定版),配置示例:
plugins { id 'com.android.application' version '7.2.2' apply false id 'org.jetbrains.kotlin.android' version '1.7.0' apply false // 修改Hilt版本为2.43.2 id 'com.google.dagger.hilt.android' version '2.43.2' apply false }
- 检查业务模块(通常是app模块)内的所有Hilt相关依赖,包括
hilt-android、hilt-compiler、以及配套的扩展库(如hilt-navigation、hilt-navigation-compose),确保版本号统一为2.43.2,不要残留旧版本配置。 - 执行Gradle同步,清理构建缓存后重新编译运行项目,报错即可消失。
补充:如果后续升级到Kotlin 1.8及以上版本,需要对应升级Hilt到更高适配版本,避免再次出现元数据不兼容问题。
内容的提问来源于stack exchange,提问作者Hasan Kucuk
相关产品推荐
相关产品推荐

