Flutter构建报错:androidx.window要求compileSdkVersion≥31如何解决
报错原因
Flutter 3.0版本默认集成的androidx.window:window-java等AndroidX依赖,要求项目编译所用的compileSdkVersion最低为31,当前项目:app模块配置的编译目标为android-28,不满足依赖的版本要求,构建会直接中断。
解决步骤
- 打开项目路径下的
android/app/build.gradle文件,定位到android配置块中的compileSdkVersion配置项 - 将原有
compileSdkVersion 28的配置修改为compileSdkVersion 31,对应配置参考如下:
android { // 仅修改compileSdkVersion数值为31,其余原有配置保持不变 compileSdkVersion 31 defaultConfig { // minSdkVersion、targetSdkVersion无需跟着修改,compileSdk仅作用于编译阶段,不决定App支持的最低安卓系统版本 applicationId "你的项目包名" minSdkVersion 原有配置值 targetSdkVersion 原有配置值 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } }
- 如果修改app模块配置后仍报相同错误,是因为引入的第三方插件在自身配置中写死了低版本compileSdk,无需修改插件源码,打开项目根目录下的
android/build.gradle文件,添加如下全局配置,强制所有子模块(含第三方插件)统一使用31版本compileSdk:
subprojects { afterEvaluate { project -> if (project.plugins.hasPlugin('com.android.application') || project.plugins.hasPlugin('com.android.library')) { android { compileSdkVersion 31 } } } }
- 配置修改完成后,执行
flutter clean清除历史构建缓存,重新触发构建即可正常编译。
注意:compileSdkVersion是编译阶段使用的SDK版本,仅决定编译时可调用的API范围,不会改变App对低版本安卓系统的兼容性,无需担心修改后低版本系统用户无法安装使用。
内容的提问来源于stack exchange,提问作者user5381191
相关产品推荐
相关产品推荐

