错误原因很简单,就是ak不匹配,一般这种错误是出现在App签名打包发布后,也就是正式版的App中使用的ak会与开发时的ak不同,因为根据官方文档,这个ak的组成,是数字签名+“;”+包名;
在开发时(也就是debug版)用的是sdk的数字签名,获取方法很如官方文档所述。
在发布时(也就是release版)用的是打包签名时的签名,所以在在正式发布时,如果依然使用之前之前的ak,会报如下错误:
解决办法就是替换掉之前的签名,使用正式版的签名。
获取正式版签名的方法:
在签名的时候,会生成一个.jks文件,这个就是最新的签名文件(之前的版本可能是.keystore文件),这个文件的位置是自定义的,在签名的时候设定。
然后打开命令行,定位到jdk中的bin(不明原因,我电脑上配置了环境变量不起作用,所以只好定位到文件夹执行命令)
然后执行命令 keystool -list -v -keystore [签名文件的绝对路径](比如我的签名文件放在C:\Users\tancen.AndroidStudio\KeyStore\tenutekey.jks)
接下来输入密码(在AndroidStudio签名打包时的密码)
然后就能看到签名文件信息了:
图中的SHA1值就是新的签名,将这个值替换到百度地图控制台中原有的ak值中的签名:
到此,应用ak修改完成,现在的ak就是release版应用的ak,错误解决。