You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter应用修改Target SDK至36后Google Play控制台仍未识别的问题排查

Flutter应用修改Target SDK至36后Google Play控制台仍未识别的问题排查

我明白你现在的困扰——明明已经在android/app/build.gradle里把Target SDK改成36了,上传到Google Play控制台后却还是收到API等级不符合要求的警告,而且其他同配置的Flutter应用都正常,就这一个出问题,确实让人头疼。下面咱们一步步排查可能的原因:

1. 先确认上传的包是修改后的正确版本

有时候很容易犯低级错误:比如传了旧的debug包,或者之前没修改配置时构建的release包。你可以:

  • 打开Google Play控制台的「发布管理 > 应用版本」,找到刚上传的版本,查看它的详细信息,确认页面上显示的Target SDK等级是否为36。如果还是旧版本,说明你上传的包不对,重新执行flutter build appbundle --release(或者flutter build apk --release)构建最新的release包再上传。

2. 检查是否有Product Flavor或多模块覆盖了配置

如果你的应用用了产品风味(Product Flavors),每个风味可能单独设置了Target SDK,会覆盖defaultConfig里的配置。看看你的build.gradle里有没有类似这样的代码:

productFlavors {
    demo {
        targetSdk = 33 // 这里可能还是旧版本
    }
    full {
        targetSdk = 33
    }
}

如果有,把每个flavor里的targetSdk也改成36。另外,如果你的项目依赖了自定义Android库模块,也要检查这些模块的build.gradle里的targetSdk配置,确保没有冲突。

3. 验证本地构建包的实际Target SDK值

有时候gradle配置看起来没问题,但实际打包时没生效,你可以手动验证:

  • 用Android Studio打开「Build > Analyze APK」,选择你上传的release包,查看解析后的AndroidManifest.xml,找到targetSdkVersion属性,确认它是36。
  • 或者用终端执行命令:aapt dump badging 你的应用包路径.apk | grep targetSdkVersion,正常输出应该是targetSdkVersion:'36'

4. 排除Google Play控制台的缓存延迟

Play控制台有时候会有数据更新延迟,尤其是刚上传包的几十分钟内。你可以等待1-2小时后刷新页面,看看警告是否消失。如果过了大半天还存在,那基本可以排除延迟问题。

5. 检查AndroidManifest.xml是否有硬编码配置

虽然Flutter项目通常通过gradle自动生成targetSdkVersion,但不排除你之前手动在android/app/src/main/AndroidManifest.xml里加过这个属性。打开这个文件,看看有没有<uses-sdk android:targetSdkVersion="xx"/>这样的代码,如果有,要么改成36,要么直接删除(让gradle来管理这个配置更稳妥)。

6. 确认gradle配置已同步

修改build.gradle后,一定要点击Android Studio右上角的「Sync Project with Gradle Files」按钮,确保新配置完全生效。有时候忘记同步,构建出来的包还是用的旧配置。

按照上面的步骤逐一排查,应该能找到问题所在,解决Play控制台的警告。

内容来源于stack exchange

火山引擎 最新活动