Compose Compiler 1.1.1构建报Kotlin版本不匹配如何正确配置
核心原因
你遇到这个问题本质是把三个完全独立的Kotlin版本概念搞混了:
- IDE内置的Kotlin插件版本:就是你在Kotlin REPL里看到的
1.7.0-RC2,这个版本只服务于IDE本身的代码提示、语法检查、REPL运行这类IDE功能,完全不参与Gradle构建流程,和你项目构建用的Kotlin版本没有强制绑定关系,所以REPL显示的版本和构建报错的版本不一致是正常现象。 - Gradle构建使用的Kotlin版本:这个版本完全由项目的Gradle配置文件决定,和你IDE装了什么版本的Kotlin插件没有关系。报错里提到的
1.5.31就是构建流程实际拉取到的Kotlin版本——你虽然在根目录build.gradle的ext块里写了kotlin_version = '1.6.10',但没有在所有需要声明Kotlin版本的配置位置正确引用这个变量,之前Compose 1.0.5默认适配的就是Kotlin 1.5.31,旧的硬编码配置没有改全,才会导致构建时还是用旧版本。 - Compose编译器兼容的Kotlin版本:Compose编译器对Kotlin版本有严格的一一对应要求,1.1.1版本的Compose编译器只能和Kotlin 1.6.10配合使用,版本不匹配就会直接抛你看到的这个报错,
suppressKotlinVersionCompatibilityCheck只是跳过检查逻辑,不会解决实际的API不兼容问题,所以你开了这个参数还是会报其他构建错误是必然的。
修复步骤
按顺序检查配置,改完就能解决问题:
- 检查根目录
build.gradle的buildscript依赖块,确保Kotlin Gradle插件正确引用了你定义的版本变量,不要硬编码旧版本号,参考配置如下:
buildscript { ext { compose_version = '1.1.1' kotlin_version = '1.6.10' } repositories { google() mavenCentral() } dependencies { // 重点:这里必须引用上面定义的kotlin_version变量,不能写死1.5.31 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Compose 1.1.1要求AGP版本至少7.0,建议用7.1.x稳定版 classpath 'com.android.tools.build:gradle:7.1.3' } }
- 检查所有启用了Compose的模块(通常是app模块)下的
build.gradle文件,重点确认两处配置:- 不要在模块的plugins块里硬编码Kotlin版本,确保和根目录引用的Kotlin Gradle插件版本一致
composeOptions块里的编译器版本要和你使用的Compose版本对齐,不要硬编码旧版本,参考配置:
android { // 省略compileSdk、defaultConfig等常规配置 buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion compose_version // 不要额外配置kotlinCompilerVersion参数,避免版本覆盖 } } dependencies { // 所有Compose相关依赖统一引用compose_version变量,不要混着用1.0.5的旧版本 implementation "androidx.compose.ui:ui:$compose_version" implementation "androidx.compose.material:material:$compose_version" implementation "androidx.compose.ui:ui-tooling-preview:$compose_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_version" } - 排查版本硬编码残留:打开Android Studio底部的Terminal,Windows系统执行
gradlew.bat dependencies、Mac/Linux系统执行./gradlew dependencies,在输出的依赖树里搜索kotlin-gradle-plugin,确认没有其他构建脚本、第三方插件强制指定了1.5.31的Kotlin版本,如果有就把对应的硬编码版本改成你定义的kotlin_version变量。 - 清理缓存重新构建:配置全部改完后,点击菜单栏
File > Invalidate Caches...,勾选所有选项重启IDE,之后依次执行Build > Clean Project、Build > Rebuild Project即可正常构建。
额外提一句:你现在装的Kotlin Early Access预览版插件只会影响IDE的代码提示,不会影响构建,如果不需要测试Kotlin 1.7的新特性,建议把Kotlin插件切回1.6.10对应的稳定版,避免出现IDE提示和实际构建行为不一致的问题。
内容的提问来源于stack exchange,提问作者blu
相关产品推荐
相关产品推荐

