当我在用百度地图开发的时候,在android studio中直接运行时,位置信息可以显示,但是当给app打包成apk文件安装到手机上时却不能显示地图,只显示网格,相信很多人都会遇到这个问题,最后问题解决了,借此记录一下, 这个问题原因就是申请百度key的时候填写的SHA1也就是指纹证书有问题。我们开发的时候应该都是按照百度开放平台上介绍的流程去申请的,这当然是没问题的,但是当直接打包安装apk的时候就有问题了,因为按照百度的流程申请到的指纹证书只针对本地开发环境存在的默认签名文件debug.keystore的指纹证书。 但是我们在开发一个apk发布在应用商店供别人下载时,需要我们自己对我们的app进行签名,并拿到签名文件,这个签名文件是我们自己apk的签名文件,和开发环境默认的签名文件不一样,指纹证书SHA1也不同。 所以当我们用自己的签名文件导出apk时,百度地图的key应该是我们的签名文件的指纹证书,如果还是用开发环境debug.keystore的SHA1申请的key,就会出现不显示地图的情况,正确的配置流程如下:
第一步:先从android studio中生成一个自己的签名文件,安卓的签名文件格式为.jks,例如IMDemo.jks
第二步:打开cmd,进入到刚才打包的签名文件的路径,输入keytool -list -v -keystore IMDemo.jks IMDemo.jks为你自己打包的签名文件名称
第三步:输入路径之后,点击enter 键直接进入输入密钥库口令,若没有密钥库口令可直接进入,之后就会展示指纹证书SHA1
第四步:进入到百度地图开发者后台创建android应用,输入你刚才得到的SHA1,点击提交
第五步:得到新的百度地图key
最后一步:拿到新的百度地图key,进入你项目的AndroidManifest.xml,替换之前的百度地图key,运行项目,打包安装,OK!
注意:1、最后替换完成之后,直接运行可能会不显示地图,但打包apk安装就没问题了。 2、注意要进入文件所在路径再输入命令。