前言
在使用Android Studio集成百度map SDK的过程中,出现了地图不展示等各种错误,记录下来,以帮助初学者少走点弯路,由于使用百度地图需要使用百度的AK,而AK需要SHA1值与包名组合,网上对SHA1的获取众说纷纭,但是没有一个整体的描述,导致了就算获取了SHA1并获得AK之后,地图仍然报230错误的现象,于是此文来阐释下关于SHA1与AK的简单关系;
正文
首先说明一点,真机调试和打包时候所使用的签名是不一样的,调试(debug)时使用的是C:\Users\****\.android目录下的debug.keystore,而打包则是需要自己创建一个签名,因此获取SHA1的时候要根据是调试还是打包来判断要使用的keystore文件,但是在Android Studio中自己新建的签名文件已经不是keystore后缀的文件了,而是以jks为后缀的,于是这里我们需要获取两个SHA1值,一个调试、一个release,当然如果你只是调试那只用前面一个就可以了;然后在Baidu的API控制台中创建应用的时候,创建两个,一个debug AK,一个release AK,当然也是按个人需求来创建;
下面来演示这两套的获取与创建:
(1)DEBUG:
获取debug SHA1:
debug的keystore文件一般位于:C:\Users\****\.android目录下的debug.keystore
在此目录打开命令行,使用keytool命令:keytool -v -list -keystore debug.keystore
这里会让你输入密钥库口令,这你妹的谁知道,结果查了一下,你猜是啥? android 我真去了!
这样就获取到debug的SHA1值了,这样在真机调试的时候,使用这个SHA1创建的AK就能正常的使用地图了;
(2)release
这个我使用Android Studio的Terminal来获取:
首先自己创建一个release版本的证书,Build--》Generate Signed APK...
切换到相应目录,并使用命令:keytool -v -list -keystore ***.jks 这里***换为你创建的签名的名字:
这样就获取到相应的SHA1了;
创建AK:
这样使用这两个AK,分别在debug或者release时使用,就能正常的使用百度地图了
。