Bootstrap

关于地图API提示Key不正确的原因和方法

测试使用的是高德地图API,先按照教程上的方法,cmd后进入.android下直接用下述命令:

keytool -list -v -keystore debug.keystore

提示:'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件

查了一下,换种方法,先进Java中keytool的目录,然后输入命令,会出现输入密钥库口令的提示,这时不需要输任何密码,直接回车。如下图

即可看到SHA1,不过这时看到的SHA1是debug模式下的SHA1,所以在提示输入密钥库口令直接回车。根据此SHA1得到的key是属于debug模式。如果你的应用没有添加数字签名,直接Build APK,则此Key值是可用的。但如果是Generate Signed APK,即带有签名时此Key不能用。根据高德官方说明:

“在debug模式下,或者最终打包签名release模式时,App的签名文件是不一样的,所以对应的Key的sha1值也应该同步替换;”

替换的方法:依旧在keytool路径下,不过用另一条命令,如下图:


在keytool -list -v -keystore后输入.jks文件的路径,此时回车后需要输入的密钥库口令则是你的签名。用得到的SHA1替换debug模式下的SHA1即可。

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;