百度地图不显的问题
描述
最近刚做了个基于百度地图的APP,开发环境为Android Stuido 1.3,按照百度官网的提示申请了key,对着实例百度地图跑起来了,在调试的时候也没有问题,可是在通过自己的Jks打包后,就无法正常显示百度地图了。去百度地图的开发者论坛逛了一大圈也没有找到解决方案,就该问题,反正大家都是在喷百度,论坛的官方也没给一个答复。
原因:
其实是百度地图的KEY 的问题,也就是我们自己的key有问题,这点也是大家很容易忽略的地方。因为对着官网的教程来的啊,怎么会出问题呢?我们看百度官方是怎么告知生成KEY的:
Android签名证书的sha1值获取方式有两种:
第一种方法:使用keytool
第1步:运行进入控制台
第2步:定位到.android文件夹下,输入cd .android
第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:
其中keytool为jdk自带工具;keystorefile为Android 签名证书文件
解决方法
问题就在 第3步
我们做应用一般都会自己生成jks来打包,每个jks 都有自己的SHA1 值,但是我们如果直接按照官网的步骤,那么 获取的JKS值是系统默认的JKS的SHA1 ,并不是我们自己生成JKS的SHA1 ,我们在调试程序的时候,是默认走的系统默认的JKS,也就是 .android 文件夹下的jks. 如果你用系统默认的JKS 中的SHA1 去官网注册KEY,那么你在打包的时候,又是用的自己的JKS,百度就会验证不通过,无法正常显示地图了。
那么如何显示自己的JKS中的SHA1呢?
找到你自己生成的JKS 所在的目录.比如你的jks名字叫做app.jks,进入目录然后执行
keytool -v -list -keystore app.jks
然后把获得的 SHA1,按照百度的要求去填写去生成KEY。
版权声明:本文为博主原创文章,未经博主允许不得转载。