KMM项目升级Kotlin至1.9后lintAnalyzeDebug版本兼容问题咨询
问题解决:KMM升级Kotlin 1.9后Lint任务版本不兼容报错
问题原因
你遇到的情况核心原因是:
- 项目编译、运行等核心任务使用的是你指定的Kotlin 1.9.x插件版本,Kotlin本身具备向下兼容性,所以这些功能能正常工作。
- 而
lintAnalyzeDebug任务默认依赖Gradle自带的Kotlin版本(Gradle 7.6对应的是Kotlin 1.7.1),它在检查依赖元数据时,会将Gradle自带版本作为预期版本,和你项目生成的1.9.0元数据不匹配,从而抛出错误。
可行解决方案
方案1:强制Lint使用项目指定的Kotlin版本
通过配置让Lint任务加载你项目使用的Kotlin 1.9版本工具,替代Gradle自带的版本。
Groovy构建脚本(build.gradle)
buildscript { dependencies { // 引入与项目Kotlin版本一致的lint工具依赖 classpath "org.jetbrains.kotlin:kotlin-lint:1.9.0" } } allprojects { tasks.withType(com.android.tools.lint.LintTask) { // 指定Lint使用的Kotlin版本 kotlinVersion = "1.9.0" } }
Kotlin DSL构建脚本(build.gradle.kts)
buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-lint:1.9.0") } } allprojects { tasks.withType<com.android.tools.lint.LintTask> { kotlinVersion = "1.9.0" } }
方案2:仅忽略Kotlin版本不兼容的Lint检查
如果方案1不生效,或者你不想调整Lint的依赖,可以单独禁用版本不匹配的规则,保留其他Lint检查。
方式1:通过lint.xml配置
在项目的lint.xml文件中添加:
<issue id="IncompatibleKotlinVersion" severity="ignore" />
方式2:通过Gradle配置
在模块的build.gradle/build.gradle.kts中:
android { lintOptions { disable 'IncompatibleKotlinVersion' } }
内容的提问来源于stack exchange,提问作者Vitaliy Tsirkunov
相关产品推荐
相关产品推荐

