android 地图定位报错,百度地图定位迷之报错(latitude : 4.9E-324 lontitude : 4.9E-324)

估计很多小伙伴们在开发的时候会用到定位和地图功能,用的最多的应该是百度地图和高德地图,这两天我在使用百度地图定位的时候碰到了许多迷之bug,简直迷得不要不要的,把自己碰到的问题记下来,给自己一个记录,也希望能给遇到同样问题的朋友提供一点帮助。

一、以百度地图定位流程为例

首先推荐:百度开发者官网:Android定位SDK

过来人建议:强烈建议仔细研读百度地图官网的开发文档说明!

说明:Android开发,开发工具为AndroidStudio

(一):申请百度账号,登录并在开发平台创建一个应用,拿到AK;

(二):申请密钥,可以参照官网的步骤,也可以参照郭霖大神在《第一行代码》中步骤来(如果不知道的可以百度或者留言);

(三):配置环境,这是流程中最关键的一步,许多人问题就出在这里。详细步骤参考官网步骤.下载库文件时你可以下载总的文件,也可以根据自己的需要下载自己需要的部分,有定位、导航、全景等等。

下载后你会得到一个压缩文件,解压后可以看到有以下文件:

269476f11bbdd9ff5c643138b3690074.png

官网说的是将SO文件放到自己APP的对应架构下的文件夹中,即将前面有红箭头的五个文件夹都放入到jnilibs文件夹下,其中jnilibs是自己新建的文件夹,其位置如下(project模式下的):

53610f486e294bcccde3bec02774266f.png

然后将剩下的一个.jar文件放入libs文件夹下,再在build.gradle中(一般放buildTypes下面)使用以下代码配置SO文件的使用,

sourceSets { main { jniLibs.srcDirs = ['libs'] } }

然后再配置 service,声明权限,设置AcessKey,这些照着百度地图开发者官网的开发手册来就是了。运气很好的话 Sync project然后跑一遍程序就能定到位了。但是今天这篇文章的重点不在这,而是在下面的报错!对,没错,就是报错!

二、可能遇到的报错

说明:以下碰到的报错都是建立在你的代码正确的基础之上,而非指你的代码逻辑或者语法不对而导致的错误

(一)SO文件加载失败, 这是报错问题中最最常见的报错

原因:导进去的.so文件没有加载进去。怎么看才能知道是这个原因呢?如果你把官网的代码都写上去了的话,你在 AndroidStudio下面的logcat区域会遇到

error code : 162 latitude : 4.9E-324 lontitude : 4.9E-324

这样的报错代码,通过查询官网的错误码得知162就是.so文件加载失败,网上解决方式也是众说纷纭,前段时间开发和现在一样的代码现在定位却出了问题,同一款app不同机型一个报错一个却正常,吐槽某度的一大片······

解决方法: 像碰到这种情况还是回头检查自己有没有严格按照官网的说明来配置,可以试一下clear project或者把SO文件也全部导入到libs下,不过个人还是建议把文件删除再导入一次,严格按照官网的说明操作。

(二)权限错误,

原因:像这种错误一般只出现在Android 6.0及以上的系统中,因为Android 6.0及以上对敏感权限(Android的所有权限说明)要动态申请。怎么看是知道这个错呢?一个是看你有没有在代码中申请这个权限,其次是在logcat中如果提示权限不足,这时候就要好好查看运行日志看是哪个权限没有申请到了。

解决方法:查看日志,动态申请权限(不知道的可以百度下)

(三)出现latitude : 4.9E-324 lontitude : 4.9E-324代码

说明一下:出现这行代码的原因有很多,只要是没有定到位返回的经纬度都是这行代码,因为是百度地图SDK本身声明的latitude=4.9E-324 lontitude=4.9E-324,具体如何查看还是看返回的error code是多少,然后根据这个在网上查找相关资料来解决问题。

在这里,我想特别说明一下的是,Android模拟器不能定位成功,Android模拟器不能定位成功,Android模拟器不能定位成功,重要的事情说三遍,你用Android模拟器会出现各种各样的报错代码,可能67,162,167还会轮换着出现(你说神不神奇),让你一脸懵逼甚至误导方向,明明没问题还要去各种找问题(我就是掉进这个大坑里爬了两天换真机测试才爬出来的·····呜呜呜),不要问我原因,流泪不想说原因···

7f26594b03474ca479889891380a12b7.png

最后的最后,给即将掉进坑里或者已经掉进过坑里的各位一些方法:

一是碰到问题要善于打log,在logcat中寻找自己需要的信息以及答案;

二是写之前第一步是研读开发文档,认真研读细节,你只有了解了开发文档才能懂得它的运用,才能在碰到问题的时候知道该怎么办,而不是把错误往网上一搜(可能会找到答案,也可能会白消耗很多时间);

其次是勤于搜索,把自己不会的问题贴上去,不要盲目搜索,而是有针对性、有效率的搜索,为解决bug多尝试几种方法(吐槽一句,改未知的神奇的bug真是改的怀疑人生);

希望这篇文章能给大家带来一点帮助,如果文章有什么疑问或者不足之处可以给我留言~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值