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

Android定制Kotlin编译器使用的Kotlin metadata版本是多少?

问题

Android工具链使用定制版Kotlin Compiler,是否有方法可以获知该定制编译器使用的Kotlin metadata版本?

背景信息
  • Android-tools的Lint组件依赖/android/tools/external/com-intellij/kotlin-compiler/,底层内置了特定版本的Kotlin metadata。
  • 常规Kotlin编译目标通常使用不同版本的Kotlin Compiler。
  • 因此项目升级Kotlin版本时,例如从1.5.30升级到1.6.0-M1,会触发如下报错:
Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0.
解答

有三种常用方法可以查询到该定制编译器的Kotlin metadata版本:

1. 从定制编译器jar包直接提取

找到项目当前使用的Android Gradle Plugin(AGP)对应的依赖包com.android.tools.external.com-intellij:kotlin-compiler,该包默认存储在本地Gradle缓存的caches/modules-2/files-2.1/com.android.tools.external.com-intellij/kotlin-compiler/路径下。
解压该jar包后,执行以下命令查看metadata版本常量:
javap -v kotlin/metadata/Metadata.class | grep "METADATA_VERSION"
命令输出的数值就是当前定制编译器支持的Kotlin metadata版本。

2. 从报错信息直接获取

你遇到的报错信息里已经明确给出了内置版本,其中expected version对应的值就是当前Android工具链要求的metadata版本,比如上述报错里对应的版本就是1.4.0。

3. 通过AGP版本对应查询

不同版本AGP内置的Kotlin metadata版本是固定的,常用映射关系如下:

  • AGP 7.0.x 系列:对应metadata版本1.4.0
  • AGP 7.1.x ~ 7.3.x 系列:对应metadata版本1.5.1
  • AGP 7.4.x 及以上版本:对应metadata版本1.7.1
版本不兼容临时解决方案

如果升级Kotlin版本后触发该报错,可在项目根目录的gradle.properties文件中添加以下配置,临时关闭metadata版本校验:
kotlin.mpp.stability.nowarn=true
该配置仅为临时规避方案,长期使用建议匹配项目Kotlin版本和AGP支持的metadata版本,避免出现Lint检查失效、编译异常等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:06:03