uni-app 应用不满足TargetSdkVersion30
uni-app 应用不满足TargetSdkVersion30
操作步骤:
1
预期结果:
1
实际结果:
1
bug描述:
经过检测,您的应用《出粽监督》,包名:cn.norlong.supervise,还未完成 targetSdkVersion30的升级,请您关注适配截止时间,尽快开展适配工作,避免影响应用正常发布和经营。
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | win11 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.8.12 |
手机系统 | Android |
手机系统版本 | Android 14 |
手机厂商 | 小米 |
手机机型 | 红米note12 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
manifest.json->App常用其他配置-> 配置 targetSdkVersion >= 30,然后自定义基座跑一下有没有什么问题
在开发 uni-app 应用时,如果遇到应用不满足 TargetSdkVersion 30
的问题,通常是因为 Google Play 商店要求从 2021 年 8 月起,所有新应用和更新的应用必须将 TargetSdkVersion
设置为 30 或更高版本。如果你的应用不满足这个要求,可能会导致应用无法上架或更新。
以下是一些解决这个问题的步骤:
1. 更新 manifest.json
文件
在 uni-app 项目中,manifest.json
文件用于配置应用的 Android 和 iOS 相关设置。你需要确保 targetSdkVersion
设置为 30 或更高版本。
{
"app-plus": {
"android": {
"targetSdkVersion": 30
}
}
}
2. 更新 build.gradle
文件
如果你需要更细粒度的控制,或者 manifest.json
的配置没有生效,你可以直接修改 build.gradle
文件。
在 platforms/android/app/build.gradle
文件中,找到 defaultConfig
部分,并确保 targetSdkVersion
设置为 30 或更高版本。
android {
defaultConfig {
targetSdkVersion 30
}
}
3. 处理权限问题
从 Android 11(API 30)开始,某些权限的行为发生了变化。例如,访问外部存储的权限需要特别处理。你可能需要更新你的代码以适应这些变化。
4. 测试应用
在更新 targetSdkVersion
后,务必对应用进行全面的测试,确保所有功能在 Android 11 及更高版本上都能正常工作。
5. 重新打包并发布
完成上述步骤后,重新打包你的应用,并提交到 Google Play 商店。
6. 使用 HBuilderX 的最新版本
确保你使用的是最新版本的 HBuilderX,因为新版本通常会包含对最新 Android SDK 的支持和优化。
7. 检查插件兼容性
如果你使用了第三方插件,确保这些插件也支持 targetSdkVersion 30
。如果插件不兼容,可能需要寻找替代方案或联系插件开发者进行更新。
8. 参考官方文档
uni-app 和 Android 官方文档提供了详细的指南和最佳实践,建议仔细阅读并遵循这些文档。
9. 处理兼容性问题
如果应用在 targetSdkVersion 30
下出现兼容性问题,可能需要根据 Android 11 的新特性进行调整,例如:
- Scoped Storage: Android 11 引入了 Scoped Storage,限制了应用对外部存储的访问。你可能需要更新文件访问逻辑。
- 权限管理: Android 11 对权限管理进行了调整,特别是后台位置访问权限。确保你的应用正确处理这些权限。
10. 使用 android:requestLegacyExternalStorage
标志
如果你的应用在 Android 11 上需要访问外部存储,可以在 AndroidManifest.xml
中添加以下标志:
<application
android:requestLegacyExternalStorage="true"
... >
...
</application>