uniapp安卓app打包后使用uni.chooselocation地址列表一直加载转圈问题如何解决?
在uniapp开发的安卓APP中,使用uni.chooseLocation选择地址时,地址列表一直处于加载转圈状态,无法正常显示。已确认在H5端和iOS端运行正常,仅在安卓打包后出现此问题。尝试过检查网络权限、更换高德/腾讯地图key、清理缓存等方法均无效。请问该如何解决?可能是什么原因导致的?
2 回复
检查网络权限和定位权限是否开启,确保高德/百度地图key配置正确。建议使用真机调试,检查定位服务是否正常。
在UniApp中,uni.chooseLocation 地址列表一直加载转圈的问题通常由以下原因导致,请按步骤排查和解决:
1. 检查网络权限
确保在 manifest.json 中已正确配置网络权限:
{
"app-plus": {
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>"
]
}
}
}
}
2. 配置高德或百度地图Key
uni.chooseLocation 依赖地图服务,需在 manifest.json 中配置有效的地图Key:
{
"app-plus": {
"maps": {
"amap": {
"key": "你的高德地图Key"
},
"baidu": {
"key": "你的百度地图Key"
}
}
}
}
注意:
- 在高德/百度开放平台申请Key时,包名和SHA1必须与打包配置一致。
- 测试时建议使用自定义基座,避免Key校验失败。
3. 检查定位权限
- 在App启动时动态申请定位权限:
uni.authorize({ scope: 'scope.userLocation', success: () => { console.log('定位权限授权成功'); }, fail: () => { uni.showModal({ content: '需要定位权限才能使用地址选择功能', showCancel: false }); } });
4. 网络环境问题
- 确保设备网络通畅,地图服务依赖网络请求。
- 若使用企业证书打包,检查是否配置了合法域名(如高德API域名
*.amap.com)。
5. 使用自定义基座测试
在HBuilderX中制作自定义基座,确保Key和配置正确,避免正式打包后出现问题。
6. 替代方案
若问题持续,可改用第三方地图插件(如 uni-app 官方推荐的 map 组件 + POI搜索),或使用高德/百度SDK自行封装地址选择功能。
总结步骤:
- 确认网络和定位权限已开启。
- 检查地图Key配置是否正确(包名、SHA1匹配)。
- 通过自定义基座测试。
- 若仍失败,检查网络环境或更换地图服务商。
按照以上步骤操作,通常可解决地址列表加载问题。

