m***@163.com
m***@163.com
  • 发布:2018-09-28 09:12
  • 更新:2021-07-21 16:29
  • 阅读:13400

uni-app获取位置接口打包成app无法使用

分类:uni-app

getLocation接口在真机模拟上可以获取经纬度,但是打包成安卓app就走fail里了,同一个手机环境下运行的。

2018-09-28 09:12 负责人:无 分享
已邀请:

最佳回复

m***@163.com

m***@163.com (作者) - Zero

问题解决方案:前往高德开放平台申请对应android和ios的key 在项目manifest.json里勾选高德地图模块 填入对应key

  • 胖南瓜

    贴一下自己遇到的问题,希望遇到的问题的朋友可以一次性解决。

    manifest.json appSDK配置方面勾选高德地图,然后填上key。对应的安卓key要去安卓那里搞,然后去申请了发现要先安装jdk,安装了jkd执行 keytool -list -v -keystore发现密匙库不存在,然后keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 建立密匙库,输入密码时候输入没有任何反应,不用慌,只是不显示,但是密码已经输入了。

    一步一步操作下,然后keytool -list -v -keystore debug.keystore就能看到了。

    2019-06-26 15:16

  • 1***@qq.com

    回复 胖南瓜: 请问你采用的是自己打包还是云打包?云打包也需要配置jdk的环境吗

    2019-07-08 13:33

  • 胖南瓜

    回复 1***@qq.com: 之前尝试了,需要配置jdk

    2019-07-08 15:10

  • 2***@qq.com

    回复 胖南瓜: 大佬你好,我也遇到了同样的问题,但是申请完高德SDK后填写上并且给了权限再打包成App还是不行,地图还是定位到天安门,uni.getLocation()接口还是走的fail回调,怎么办啊

    2019-08-31 15:30

  • 胖南瓜

    回复 2***@qq.com: 大兄弟,我也是菜鸡,有一个问题你可以尝试下,就是你看下自己手机那个app的sha码(不知道写错没有),我有一次就是这个问题,手机app的sha码和显示的对不上,有个软件mccode check,可以看到app的sha码

    2019-09-03 09:48

  • 2***@qq.com

    回复 胖南瓜: 谢谢,我App的地图问题解决了,现在是小程序和H5的腾讯地图还是无法定位

    2019-09-03 15:21

  • 胖南瓜

    回复 2***@qq.com: h5没得搞,反正我是有问题,模拟数据没问题,后端发来的数据一模一样,地图不显示任何定位

    2019-09-04 17:11

  • 1***@qq.com

    回复 2***@qq.com: 兄弟,我遇到了你同样的问题,高德SDK后填写上并且给了权限再打包成App不行,地图还是定位到天安门,你是怎么解决的????在线急等!

    2019-09-17 17:46

  • 786395613

    高德地图申请key时 需要SHA1和包名 包名怎么获取 填了key就能用吗

    2019-09-22 22:25

  • 1***@qq.com

    回复 2***@qq.com: 这个你是怎么解决的呢?我的位置信息执行时,还是执行fail函数

    2019-09-25 17:33

  • 1***@qq.com

    这个问题解决了吗?我按照步骤一步一步的,还是不可以,真机运行时和小程序运行,一切正常,打包成apk,就找不到了

    2019-09-30 10:32

  • 4***@qq.com

    回复 1***@qq.com: 我也是 大佬你解决了么

    2019-11-08 11:15

  • 4***@qq.com

    我也是 一打包uni.getLocation({})无法获取当前定位 直接定位到天安门了

    2019-11-08 11:19

  • k***@163.com

    回复 胖南瓜: 大佬大佬,我按照你的方法拿到了Key,然后也注意了key里面的包名和打包包名一致的问题,配上去结果还是不行呀,请问还有什么要注意的地方吗

    2019-11-21 10:04

  • 1***@qq.com

    回复 2***@qq.com: 请问下你是怎么解决的呢

    2021-01-21 10:35

  • 1***@139.com

    回复 2***@qq.com: 你好,是怎么解决的

    2021-12-10 13:52

  • l***@163.com

    云打包也是这么解决吗?

    2022-10-17 17:55

3***@qq.com

3***@qq.com

我也遇到了同样的问题,真要调试是可以的,但云端打包后就获取不到位置了,直接走fail回调了。。。求解答。。。

  • 2***@qq.com

    请问你的问题解决了吗?我也遇到了同样的问题怎么办啊

    2019-08-31 14:38

  • 1***@qq.com

    同等问题

    2019-09-29 14:34

  • k***@163.com

    请问你们的问题后来解决吗?我同款问题

    2019-11-21 09:41

SimpleJalon

SimpleJalon - 个人承接PHP、uniapp项目,有案例,联系QQ 615773740,不接受外地工作,可付费提供技术支持。添加QQ时务必备注来意以及添加渠道,渠道可以写:`uniapp`

这个我之前遇到过了,
1.检查配置是否正确。

  1. 检查是否开启了gps
  2. 是否授权获取位置信息
SimpleJalon

SimpleJalon - 个人承接PHP、uniapp项目,有案例,联系QQ 615773740,不接受外地工作,可付费提供技术支持。添加QQ时务必备注来意以及添加渠道,渠道可以写:`uniapp`

https://ask.dcloud.net.cn/question/63763

“华为手机使用高德地图时,必须打开设置中的定位服务或者下拉通知栏打开位置服务(或GPS)。”

4***@qq.com

4***@qq.com

我也遇到了这个问题(真机调试没有问题,但打包后无效)
最后找出原因:
我在高德控制台申请key的时候,SHA1值填写的是HBuilderX manifest.json中App SDK配置里【地图配置指南,https://ask.dcloud.net.cn/article/29】的高德地图示例值【BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58】,示例中是HBuilder,而我打包是用HBuilderX,根据官方给出的公共测试信息中已列出SHA1的值【BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7】,保证高德配置的与这个一致即可,在此之前,我已细致检查过配置的包名无误。
最后套一句官方的话:该证书可用于测试打包,不要用于正式发布。

  • 7***@qq.com

    感谢 这个是有效的

    2020-05-17 17:07

DCloud_UNI_GSQ

DCloud_UNI_GSQ

补充一下手机的型号和系统

  • m***@163.com (作者)

    华为荣耀cam-ul00,魅族MX6。

    2018-09-28 10:51

  • m***@163.com (作者)

    然后刚刚用了5+的geolocation同样是基座可以 但是打包成app就获取不到了

    2018-09-28 10:54

  • m***@163.com (作者)

    然后现在魅族mx6可以获取到地址信息 荣耀和魅蓝5s无法获取

    2018-09-28 11:14

  • 2***@qq.com

    荣耀10这里获取不了,我用的是原生地图plus.maps.Map.geocode这个方法,云打包安卓后这个方法根本没执行!

    plus.maps.create这个方法执行了!!

    2019-08-27 08:57

m***@163.com

m***@163.com (作者) - Zero

就是接口感觉时灵时不灵 昨天同设备还能用 今天就用不了了 我想知道这是我这边代码问题 还是uni.getLocation这个接口的问题

e***@sina.com

e***@sina.com

同问题,锤子pro2s

DCloud_UNI_GSQ

DCloud_UNI_GSQ

检查高德sdk的配置

  • e***@sina.com

    不就是配置个key就可以吗?配置没问题的

    2019-02-25 11:10

Daqingmba

Daqingmba - daqingmba

VIVO Y67还有华为,也遇到同样问题。
调试可以,但云端打包后就获取不到位置了

某不知名程序员

某不知名程序员

我也遇到了同样的问题,真要调试是可以的,直接走fail回调了。。。

5***@qq.com

5***@qq.com

同样的问题解决了吗

zlin

zlin

你们打包时用的本地打包还是云打包

1***@qq.com

1***@qq.com

请问有人解决了吗 我也是碰到了同安用的问题 真机调试getLocation正常 打包成apk 就使用不了了

1***@qq.com

1***@qq.com

救救孩子吧

m***@163.com

m***@163.com (作者) - Zero

配置key之后还是无法获取定位请在应用权限里面查看是否给app了获取位置的权限以及查看手机是否开启的了GPS,因手机型号不同可能存在多重权限需要开启(华为荣耀开启了GPS还需要在设置里获取位置模块开启权限).

深蓝的一片海

深蓝的一片海 - 90后IT男

怎么解决,官方给个说法

9***@qq.com

9***@qq.com

我也遇到同样的问题了, key配置无措, 请问要怎么解决

  • 2***@qq.com

    解决了么?我也是配置没问题,但app不行小程序行

    2019-07-19 13:58

  • 9***@qq.com

    回复 2***@qq.com: 注意地图绑定 key 的包名是否与打包时发行的包名一致, 我的是这个问题

    2019-07-19 15:54

  • 本社区最菜

    回复 9***@qq.com: 没错,我的也是这个问题,key包名和高德那边的不一致

    2019-11-17 23:02

9***@qq.com

9***@qq.com

换一个plus.geolocation.getCurrentPosition()

gongliying

gongliying

请问现在解决了吗?? 是怎么解决的,我也碰到了这个问题,真机调试没有问题,但是APP打包生成之后,就直接走了fail,但是定位权限已经开启,在线求

DCloud_heavensoft

DCloud_heavensoft

请仔细看定位api的文档,manifest里配高德的sdk信息!

  • gongliying

    高德SDK已经配置,地图模块也有了,权限也正确获取了,但是走的还是fail

    2019-09-04 09:55

  • 1***@qq.com

    回复 gongliying: 我的也是这个问题,配置都对,小程序正常,但一打包apk就走fail

    2019-09-29 14:36

  • DCloud_heavensoft

    回复 1***@qq.com: 小程序配置和app完全是2套。app配对了,肯定就是好的,搞明白要申请的key、搞明白包名的对应关系

    2019-10-10 22:24

  • 1***@qq.com

    回复 DCloud_heavensoft: 这些都一一对应的有,然后调用高德地图时,会弹出定位失败

    2019-10-12 11:07

  • 1***@139.com

    回复 1***@qq.com: 同样问题,解决了吗

    2021-12-10 13:50

9***@qq.com

9***@qq.com

解决打包之后getlocation不能获取到当前位置的问题,大部分人应该是key没配置对,packagename是你云打包的时候的Android包名,不是自己定义的名字

  • 1***@139.com

    大佬,我两个名都一样的,但还是有问题

    2021-12-10 13:49

4***@qq.com

4***@qq.com - 80后IT男

我说说我的历经,我最开始是通过离线打包的方式配置的:
1.sha1,我通过keytool -list -v -keystore debug.jks 命令拿到的值,packname我直接拿AndroidManifest.xml配置文件的package的值,进行配置的,但是一直获取定位失败。 我反复对比了配置,没错。

  1. 然后我通过云打包的方式测试,填入文档里面的sha1和packname,发现定位是可以的,于是我认为问题还是出现在配置上
  2. 通过https://ask.dcloud.net.cn/article/id-212__page-2这个文档一步一步进去检查,发现都配置好了,最终是在AS里面进行模拟机调试,发现日志里面出现了,高德地图的鉴权失败详情,我发现日志里面的sha1与我配置的不一样,于是我把日志里的sha1复制到高德key的配置里面,在模拟器里面还是失败(失败原因为:没有sim卡,没有wifi之类)。于是我打包真机调试,发现居然可以了..

PS。虽然可以了,但是我不知道日志里的sha1是怎么来的...难道jks和keystore不一样的么

y***@163.com

y***@163.com

我人解决了吗,我真的服了,高德那边配置没错,uniapp这边配置也没错,该填的填了,真机调试可以,一打包就走了fail

  • DCloud_heavensoft

    你以为没错,最后还是会发现配错了,注意包名和证书的匹配

    2020-04-19 19:19

  • y***@163.com

    回复 DCloud_heavensoft: 匹配了啊,这个都检查了很多遍了,也确认了很多次

    2020-04-24 16:47

  • 1***@qq.com

    回复 y***@163.com: 我的小米手机都行,华为的机型不可以,哈哈

    2020-07-08 18:07

1***@qq.com

1***@qq.com - 把你妈给你抓起来

kaokaokao 终于解决了 检查权限 申请第三方key 打包时选择你生成的证书 然后 重启 打包 不行就打包两次 不要问我为什么

  • 1***@139.com

    大佬,用公共证书不可以吗??

    2021-12-10 13:47

1***@qq.com

1***@qq.com

腾讯地图有解决方案吗,真机预览时是正常的,但是打包apk无法使用定位

  • DCloud_heavensoft

    请各位都认真、仔细的看定位文档的注意事项:https://uniapp.dcloud.io/api/location/location?id=getlocation。有必要的话,ctrl+f5强刷去缓存

    2020-06-19 00:32

1***@qq.com

1***@qq.com

没有勾选配置文件地图上面的选择定位那个东西

该问题目前已经被锁定, 无法添加新回复