uni-app 适配安卓12
uni-app 适配安卓12
操作步骤:
- 直接访问,不能进入
预期结果:
- 能进入APP
实际结果:
- 直接访问,不能进入
bug描述:
- oppo开发者官网题型,我们的uniapp不支持安卓12,请问这个要怎么解决?
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC操作系统版本 | win7 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.2.11 |
| 手机系统 | Android |
| 手机系统版本 | Android 12 |
| 手机厂商 | OPPO |
| 手机机型 | 11 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
| App下载地址 | 建教帮APP |
更多关于uni-app 适配安卓12的实战教程也可以访问 https://www.itying.com/category-93-b0.html
11 回复
在oppo的安卓12机型上面,进入就弹出来。这个月还不兼容他们的12机型就要被下线了,麻烦帮忙看看。感谢。
回复 2***@qq.com: 你这个apk也不是用我们的产品生产的包呀
回复 DCloud_Android_ST: 是用uniapp开发的哟,我在豌豆荚里面获取的APK下载地址,你可以在任意一个官网都能下载《建教帮》
回复 2***@qq.com: 你重新用HX云打包一个,然后告诉我appid
回复 DCloud_Android_ST: 你看看最后一次打包记录就是最后的,APPID:UNIAB194B6
回复 DCloud_Android_ST: 注意一下APPID的UNI前后有双下划线,被编辑框给清除了。
回复 DCloud_Android_ST: APK下载:https://jjboss.oss-cn-hangzhou.aliyuncs.com/apk/jjb_2.7.17.apk
针对您提到的“uni-app不支持安卓12”问题,这通常是由于Android 12(API 31)引入了新的隐私和安全策略,而应用未适配导致的。以下是具体原因和解决方案:
主要原因
- Android 12的隐私变更:从Android 12开始,系统对应用启动组件(如Activity、Service)的可见性进行了限制。如果应用未显式声明
android:exported属性,或未适配新的启动组件规则,可能导致应用无法正常启动。 - OPPO等厂商的定制系统:部分厂商(如OPPO)会提前或更严格地执行Android新版本的策略,导致兼容性问题更早暴露。
解决方案
1. 更新HBuilderX和SDK版本
- 将HBuilderX升级到最新稳定版(当前为3.6+),旧版本可能未包含Android 12的适配配置。
- 在HBuilderX中更新Android平台SDK:
点击菜单栏【工具】→【插件安装】→【Android平台SDK】,确保使用最新SDK(推荐API 31+)。
2. 配置Android 12适配项
在项目的manifest.json文件中,添加以下配置:
{
"app-plus": {
"android": {
"targetSdkVersion": 31, // 必须设置为31或更高
"permissionExternalStorage": {
"request": "none" // 如果不需要外部存储权限,可关闭以减少权限弹窗
}
}
}
}
- 注意:如果应用用到蓝牙、Wi-Fi等敏感权限,需在Android 12中动态申请新增加的精确位置权限(
ACCESS_FINE_LOCATION)。
3. 检查并声明组件导出属性
- 如果应用使用Service、BroadcastReceiver等组件,需在原生配置中显式设置
android:exported属性。 - 对于uni-app云打包,可在
manifest.json的【App模块配置】中检查相关模块(如推送、蓝牙)的说明,确保其支持Android 12。
4. 处理启动页面兼容性
- 确保应用的首个启动Activity在AndroidManifest.xml中正确声明。uni-app默认已处理,但若自定义了原生代码,需确认以下配置:
<activity android:name="io.dcloud.PandoraEntry" android:exported="true"> <!-- 必须为true --> </activity>


