写于:2015-09-17	最近一次更新:2015-09-17

Trouble:

基于百度地图SDK开发的软件,直接使用 Eclipse 写的代码 测试调试时地图正常加载显示,离线地图也正常下载, 但正式导出为 apk 安装文件后,地图不能正常加载显示,只显示网格; 网络连接是好的,离线地图也无法下载

Oneway:

如果代码没有做过混淆的话 这是因为百度地图SDK的密钥验证失败导致的 之前测试时申请的密钥是用debug.keystore的sha1值申请的 而不是导出为apk文件时所使用的keystore的sha1值 前往百度地图申请密钥的网页, 查看安全码中的数字签名是否和当前apk应用程序签名证书的sha1值一致 若不一致,改为一致 具体操作如下: 已申请的密钥 安全码为 BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.mnxnm.mymap 已申请的访问应用(AK)为 aa5ADvGE7DVVZXx8eQPj2oPf 使用命令 keytool -list -v -keystore ~/.android/debug.keystore 查看 ~/.android/debug.keystore 的 SHA1 的值为 BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75 与百度安全码的数字签名部分一致 使用命令 keytool -list -v -keystore ~/Develop/android/MyMap.keystore 查看 当前apk应用程序签名证书的sha1值为 E2:ED:3D:1E:56:CC:E8:1C:51:CC:BF:49:78:99:5C:5A:10:E3:AB:DF 与百度安全码的数字签名部分不一致, 需要将百度安全码的数字签名部分修改为这个 sha1 值 或者使用这个 sha1 值再创建一个应用即可

Details:

可以使用以下命令查看当前Android手机上 正在运行的基于百度地图SDK创建的软件的安全码 adb logcat | grep 'auth info'