安卓中使用百度地图遇到的问题记录

时间:2024-05-22 20:55:14

安卓中使用百度地图遇到的问题记录

使用百度地图sdk的时候导致软件闪退解决的思路有哪些?

​ 1、百度地图的key是否正确,如果不正确则需要到百度地图官网获取相应的key:http://lbsyun.baidu.com/apiconsole/key

​ 2、如果在官网获取到的key放到项目中还是不对,则应该在命令行中获取开发版与发布版的SHA1(开发版的SHA1需要通过打包时使用的.jks文件获取),然后到百度地图官网替换相应的SHA1值,获取相应的key,步骤如下:

​ (1)首席先去开发版(即debug版)的SHA1,在C:\Users\wusuowei.android可以看到有一个名为debug.keystore的文件,如下图:
安卓中使用百度地图遇到的问题记录
​ (2)使用 cd .android进入.android目录,输入输入keytool -v -list -keystore debug.keystore,如无意外会出现SHA1值,但如果像下图一样报错,则应进行接下来的操作
安卓中使用百度地图遇到的问题记录

​ (3)使用命令cd C:\Program Files\Java\jdk1.8.0_191\bin,进入该目录
安卓中使用百度地图遇到的问题记录
​ (4)使用命令keytool.exe -v -list -keystore C:\Users\wusuowei.android\debug.keystore,当前需要输入**库口令为:android,成功输入则可获取如下图的信息,其中SHA1就是我们要的开发版的SHA1
安卓中使用百度地图遇到的问题记录
​ (5)接下来我们获取发布版的SHA1,使用命令keytool.exe -v -list -keystore G:\Key\yun(其中yun代表.jks文件的名字),输入**库口令为打包项目时所创建.jks文件时的keyPassword,得到的结果如下图:
安卓中使用百度地图遇到的问题记录
​ (6)最后,进入百度地图开发者中心http://lbsyun.baidu.com/,进入自己的控制台,没注册过的需要注册,进入控制台后,可以看到有个设置按你,点击进入(需要有创建过自己的应该才会有数据)
安卓中使用百度地图遇到的问题记录
​ (7)使用我们在命令行中获取到的开发版与发布版SHA1替换下图相应的SHA1值,并提交,则可获取当前项目需要的百度地图AK,在项目的AndroidManifest.xml中找到com.baidu.lbsapi.API_KEY替换即可:
安卓中使用百度地图遇到的问题记录
安卓中使用百度地图遇到的问题记录

​ 3、在安卓低版本如8.0及以下版本使用百度地图不会有问题(可能报如下错误Attempt to read from field 'java.lang.String com.baidu.mapapi.search.geocode),而在安卓9.0版本使用闪退,原因是百度地图还没适配安卓9.0,这时,需要使用可修改当前apk的运行版本,即在项目中搜索targetSdkVersion,并改为安卓9.0以下的版本,即可解决问题。

​ 4、apk打包时出现了好几个apk,原因时下图的include中设置了不同版本的处理器,注释掉即可。
安卓中使用百度地图遇到的问题记录