背景:
前段时间没事玩了玩百度地图,玩的时候有个小问题,直接把把应用运行在手机上,按照百度地图开发者文档中获取密钥可以正常显示地图,但是在打包之后放在自己的手机上就只能显示网格了
当时没在意这个问题,以为只是网络的原因,就没深究,然后前两天,公司项目需要接入地图的功能,这个问题又一次出现了,在我这里直接运行可以正常显示,但是打包好给测试之后就只能显示网格,百度了一下,问题在于申请的百度地图的key值有问题
原因:
获取key值,按照百度地图官方文档做法是这样,在doc窗口进入.android目录,然后输入keytool -list -v -keystore debug.keystore,即可得到指纹证书SHA1的值,如下图
这样生成的SHA1是系统默认的debug.keystore,但是我们的项目在打包的时候都是需要有自己的签名的(签名一般是.jks文件),这样的话使用系统默认的SHA1生成的key在打包之后就会失效,要想得到有效的SHA1值,需要我们把debug.keystore换成我们自己的签名文件,得到签名文件对应的SHA1值再拿到百度地图的key就可以正常使用了
操作步骤:
1.在doc窗口进入我们签名文件所在的目录
2.输入命令keytool -list -v -keystore "我们的签名文件",即可生成正确的SHA1值
思考:
虽然这是一个简单的问题,但是当我在第一次遇到的时候,就那么轻松的忽略了,等到真正用到的时候才去查原因是什么,感觉自己对于学习的态度还是差很多的,有点懒散了,仍需继续努力...