Flutter应用上传Google Play提示版本代码1已被使用问题求助
解决Google Play上传App Bundle时"Version code 1 has already been used"报错
核心问题分析
你上传的App Bundle实际携带的versionCode是1(而非你配置的2),且该版本号已被使用;同时你之前最后一个上线版本的versionCode是11,Google Play要求新的versionCode必须大于11,不能重复或低于已上线的版本号。
分步解决方案
检查build.gradle的versionCode读取逻辑
打开android/app/build.gradle,确保顶部正确读取localProperties,且defaultConfig中正确使用该值:// 顶部读取localProperties的代码 def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '12' // 默认值必须大于11,替换之前的2 } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0.2' } // defaultConfig部分 defaultConfig { applicationId "你的应用包名" minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName }修正localProperties中的versionCode
修改android/local.properties,确保versionCode大于11:flutter.versionCode=12 flutter.versionName=1.0.2临时直接指定versionCode(排查配置问题)
若不确定配置是否生效,可在defaultConfig中直接写死versionCode:versionCode 12 versionName "1.0.2"执行
flutter clean清除旧构建缓存,再重新构建App Bundle:flutter build appbundle验证打包后的versionCode
用aapt2工具确认生成的App Bundle版本信息:aapt2 dump badging build/app/outputs/bundle/release/app-release.aab | grep versionCode输出应显示
versionCode='12',确认无误后再上传至Google Play。排查product flavor配置(若使用多渠道)
若项目配置了product flavor,需检查每个flavor的versionCode是否都设置为大于11的整数,避免某渠道的versionCode未更新导致报错。
内容的提问来源于stack exchange,提问作者Mohamed Sami Khiari
相关产品推荐
相关产品推荐

