uni-app 小米手机安卓11下调用map.addOverlay(marker);方法百度地图闪退 高德地图无问题 请尽快回复
uni-app 小米手机安卓11下调用map.addOverlay(marker);方法百度地图闪退 高德地图无问题 请尽快回复
1 回复
更多关于uni-app 小米手机安卓11下调用map.addOverlay(marker);方法百度地图闪退 高德地图无问题 请尽快回复的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题分析:
根据描述,问题出现在小米手机(Android 11)上使用 uni-app 调用 map.addOverlay(marker) 方法时,百度地图闪退,而高德地图正常。这通常与以下原因有关:
- 百度地图 SDK 兼容性问题:特定 Android 版本或小米机型上,百度地图 SDK 可能存在兼容性缺陷。
- 权限或配置问题:百度地图对 Android 11 的权限适配可能不完善。
- Marker 数据异常:传入的
marker数据可能包含百度地图无法处理的字段。
解决步骤:
-
检查百度地图 SDK 版本
确保使用的是最新版百度地图 SDK(建议 ≥ 4.3.6)。在manifest.json中确认配置:"permission": { "BaiduMap": { "provider": "baidu", "version": "4.3.6" // 检查是否为最新 } } -
验证 Android 11 权限适配
Android 11 加强了权限管理,需在manifest.json中添加以下配置:"android": { "permissions": [ "android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION" ], "requestLegacyExternalStorage": true // 若涉及文件存储需添加 } -
简化 Marker 数据测试
尝试使用最简化的marker数据排除参数问题:map.addOverlay({ id: 'test', latitude: 39.909, longitude: 116.397, iconPath: '/static/marker.png' }) -
查看原生错误日志
通过adb logcat或 HBuilderX 控制台抓取闪退时的详细堆栈信息,重点搜索BaiduMap、NullPointerException等关键词。 -
临时解决方案
若急需上线,可考虑条件编译针对小米机型临时切换至高德地图:// #ifdef MP-WEIXIN || APP-PLUS if (uni.getSystemInfoSync().brand === 'Xiaomi') { // 使用高德地图 } else { // 使用百度地图 } // #endif

