Flutter执行build appbundle报错:compileSdkVersion已为33仍提示需更高版本
我的App在模拟器中运行正常,但执行flutter build appbundle命令构建时出现报错:
One or more plugins require a higher Android SDK version.
Fix this issue by adding the following to H:\voo\android\app\build.gradle:
android {
compileSdkVersion 33
...
}
但当前app\build.gradle中的compileSdkVersion已经设置为33,相关配置代码如下:
android { compileSdkVersion 33 lintOptions { checkReleaseBuilds false } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.voo" minSdkVersion 20 targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true } signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } } }
解决方法
检查项目根目录的
build.gradle配置
除了app模块的配置,还要确认项目根目录下android/build.gradle的ext块是否指定了统一SDK版本。如果这里的compileSdkVersion低于33,会覆盖模块级配置,导致报错。示例正确配置:ext { compileSdkVersion = 33 minSdkVersion = 20 targetSdkVersion = 33 }排查插件的SDK版本要求
执行flutter pub deps查看所有依赖插件,找到其中要求更高compileSdkVersion的插件。若有插件需要34或更高版本,需将compileSdkVersion和targetSdkVersion同步升级到对应版本,同时确保本地已下载该版本的Android SDK。清理缓存后重新构建
执行以下命令清理缓存,避免旧配置残留影响构建:flutter clean flutter pub get flutter build appbundle确认Android SDK已安装对应版本
打开Android Studio的SDK Manager,检查是否已下载compileSdkVersion对应的SDK平台(比如33版本)。未安装的话,下载完成后再尝试构建。强制插件版本兼容(谨慎使用)
若暂时不想升级SDK,可在app/build.gradle的android块中添加强制兼容配置,示例:configurations.all { resolutionStrategy { force 'com.android.support:support-v4:28.0.0' // 根据实际插件调整依赖 } }注意此方法可能引发其他兼容性问题,仅作为临时方案。
内容的提问来源于stack exchange,提问作者Mohamed Amin

