android 百度定位 4.9e-324,百度定位中出现4.9E-324问题的原因和解决办法

百度定位请查看官方开发文档

定位过程中出现经纬度为4.9E-324错误的可能情况,目前收集到四种:

1.权限错误

什么是权限错误呢?分为两种情况:一是权限没有添加完全,没有从开发文档中完全拷贝到项目中,所以建议不要手写权限代码,copy就好

二是添加的权限在Android6.0以及以上版本中含有危险权限,没有动态申请,所以建议查看需要权限中哪些需要动态申请,然后再按照动态权限申请的方式获取权限,否则提示不能使用

2.so库加载错误

什么是so库呢?为什么会加载错误?

第一个问题:so库一般是用C或者C++编写的代码,Android通过JNI来调用。

第二个问题:因为so库中的代码是可以直接调用底层的硬件,而定位的so库需要和处理器关联,不同移动端的处理器又不一样 ,所以需要不同的so库对应的使用。所以建议把开发文档中的so库全部copy到项目中,不用考虑各种不同处理器手机的情况。

然后需要注意几个点:so库一定要和jar包是同一版本的,要不然可能会有问题;

如果so库和jar包放在一块,即libs包下,则需要再module的gradle中,表示JNI调用libs包下的文件。android {

...

sourceSets {

main {

jniLibs.srcDirs = ['libs']

}

}

}

当然也可以直接在项目src/main的目录下,创建jni包,将so库全部copy进来也可以,就不用修改module的gradle了。

3.Android的模拟器是不能定位的,所以建议再测试定位时不要用模拟器,一定要使用真机。

4.第一次定位能够获取到正确的经纬度,但是后面获取的经纬度都是4.9E-324最诡异的一个但也是不容易出现的一个,却上当了…

回顾百度定位的整个流程,从百度账号进入,根据应用申请AK,然后输入开发版sha,发布版sha。原因就在这,就是这两个密钥搞错了,才出现上面的错误。如果开发版sha和发布版sha填写的都是发布版sha时,则再开发的过程中,首次定位获取到的经纬度是正确的,后面全是4.9E-324的错误;而发布版则任何时候定位都是正确的。额外的知识:在Window下如何获取开发版sha和发布版sha呢?另外说明开发版即debug版,发布版即release版。

第一步:window+R,做下角弹出一个运行的弹框,输入cmd,点击确认。

第二步:输入 cd .android,定位到.android文件夹下

第三步:输入 keytool -list -v -keystore debug.keystore,debug.keystore是debug版的签名,如果是发布版,则 cd 到发布版签名的文件夹下,同样输入该行命令,将debug.keystore替换为发布版的签名,例如这个样子:release.jks

第四步:输入密钥库口令,一般是默认的口令:android

即可获取到一系列的信息,其中证书指纹下有个SHA1就是你需要的东西,copy即可。

分享不谢,不准偷盗。

感谢分享:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值