Flutter项目修改Kotlin版本后compileSdkVersion异常变为29如何解决
问题原因说明
你遇到的compileSdkVersion被识别为29的问题,和升级Kotlin版本没有直接关联。报错的主体不是你主项目的app模块,是你引入的第三方Flutter插件(本次报错为google_maps_flutter)模块:这类第三方插件自带的安卓构建配置里,默认设置的compileSdkVersion为29,和你主项目设置的31互不影响,但你的依赖项androidx.window:window-java:1.0.0-beta04要求最低编译SDK为31,因此编译插件模块时会触发校验失败。升级Kotlin后触发了全量重新编译,才让这个之前没暴露的问题显现出来。
解决方案
按以下步骤操作即可解决:
- 强制统一所有子模块的编译SDK版本
打开项目根目录下的android/build.gradle文件,修改subprojects配置块,新增全局覆盖子模块编译SDK的逻辑:subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" project.evaluationDependsOn(':app') // 新增以下配置,强制所有安卓子模块使用统一的编译SDK版本 afterEvaluate { project -> if (project.hasProperty("android")) { android { compileSdkVersion 31 // 若提示找不到对应buildTools版本,可改为你本地已安装的31+版本,或删除此行 buildToolsVersion "31.0.0" } } } } - 清理缓存后重新构建
依次执行以下操作清除历史构建缓存,再启动项目即可:- 执行
flutter clean清理Flutter项目缓存 - 手动删除
android目录下的.gradle文件夹,清除Gradle本地缓存 - 重新执行
flutter run构建项目
- 执行
内容的提问来源于stack exchange,提问作者letsintegreat
相关产品推荐
相关产品推荐

