uni-app打包后使用chooseLocation选择位置,华为p20、vivo y73、小米6X位置列表空白(位置权限已允许),真机调试无问题,打包安装后出现空白

uni-app打包后使用chooseLocation选择位置,华为p20、vivo y73、小米6X位置列表空白(位置权限已允许),真机调试无问题,打包安装后出现空白

开发环境 版本号 项目创建方式
Windows win10专业版 64位 HBuilderX

示例代码:

uni.chooseLocation({  
    success(e) {  
        console.log('choose location :', e)  
        that.addressObj = { ...e }  
    }  
})  

操作步骤:

  • 原生APP 云打包 , 然后选择传统打包 (因为选择安心打包 时不时的就不行 报错, 无奈)

预期结果:

  • 可以正常选择

实际结果:

  • 无法展示位置列表

bug描述:

开发使用HBX 3.2.3 , 连接数据线真机调试 可以展示位置列表, 打包后安装APP 无法展示列表, 真机调试无问题

image


更多关于uni-app打包后使用chooseLocation选择位置,华为p20、vivo y73、小米6X位置列表空白(位置权限已允许),真机调试无问题,打包安装后出现空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html

17 回复

补充一条 高德地图的key 都已正确设置

更多关于uni-app打包后使用chooseLocation选择位置,华为p20、vivo y73、小米6X位置列表空白(位置权限已允许),真机调试无问题,打包安装后出现空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html


再补充一条 刚刚 云打包 - 安心打包 成功了 安装后试了一下 , 还是不能获取到位置列表 /捂脸

别沉呀

上午回退了一个hbuildx的版本 到3.2.2打包了一版试了一下 , 问题依然存在。。。。希望管理员早点看到。

问题可能找到了, 打包的时候选择的是云端证书,在高德生成key的时候用的是公共测试证书的SHA1, 已在后台找到了云端证书的SHA1,申请了新的key 更换后打包ing .一会有结果了再来发布一下。 吐槽一下 今天是2021年9月18号 明天就是中秋了, 上午我打了一个包 云打包 从10点07分 排队 到11点53分才打包完成。。。。龟龟 。

打完包之后 发现还是不行。。。 管理员救命呀

9.23 重新确认了一下高德key 测试了一版 app打包后还是空白, 真机联调有地址,

问题原因已找到 (找了2天 呗一个2020年的老哥留言启发了)
https://ask.dcloud.net.cn/question/131367?item_id=174713&rf=false
希望对后面的小伙伴有帮助吧

老哥可以了吗,我的会闪退,不知道啥原因

好兄弟,我今天也碰到这个问题了,不知道是不是版本更新的原因,打开之后,地图都是一片空白,别说列表了,但是真机调试没有问题

包名也对应了 还是没有列表 愁人

我也是,但是就是华为最新的可能几款手机出不来,你解决了嘛?

回复 w***@163.com: 华为手机测得出不来 解决了吗 大佬

愁死****

华为的不行

回复 8***@qq.com: 这个华为手机不支持解决了吗 大佬

这个问题通常是由于打包时未正确配置地图相关权限或key导致的。真机调试正常但打包后失效,主要涉及以下几个原因:

  1. 地图模块未勾选 在manifest.json的App模块配置中,需要确保已勾选“Maps(地图)”模块。云打包时如果未勾选此模块,会导致chooseLocation功能异常。

  2. 地图服务商key未配置 需要在manifest.json的SDK配置中,为使用的地图服务商(如高德、百度、腾讯)配置有效的key。真机调试时使用的是HBuilder自带的测试key,但打包后需要替换为开发者自己申请的key。

  3. 打包类型差异 您提到的“传统打包”和“安心打包”差异可能是关键。安心打包使用的是新的v3编译器,可能对权限处理有所不同。建议检查manifest.json中的权限配置是否完整。

解决方案:

  1. 检查manifest.json → App模块配置 → 勾选“Maps(地图)”
  2. 在manifest.json → SDK配置 → 地图配置中,填写从相应地图平台申请的key
  3. 确保Android权限配置中包含位置相关权限:
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
回到顶部