【BaiduMapSDK系列】baidumapsdk: Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败

上一篇解说了怎么解决Couldn't load BaiduMapSDK_v3_1_0这个问题,然而在这个问题解决后,仍有一个问题:

跑起来的demo显示的只是网格,没有具体的地图展示

仔细看logcat,可以看到这样一句:

baidumapsdk: Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败

看到这样的errorcode,第一反应应该就是直接百度、google吧,但是本人很不走运,网上几乎又是千篇一律的说是

安全码不匹配的问题--创建应用时候 安全码 填入有错(签名或者包名字错了),或者说,和项目不对应

通过各种验证,我的数字签名,包名都没有弄错。

【最后证明其实是签名文件没有打包到程序(module)

 (android studio的签名文件没设置,然后它默认的签名和eclipse的签名是不一样的,给他设置一下和申请key的数字签名一样的签名文件就可以了


首先,了解下什么是230错误:

为增强移动APP对百度开发SDK/API服务访问的控制,也避免恶意开发者对百度地图服务进行攻击,我们对Mobile类型(Android/IOS)的服务请求进行了安全码校验;所谓安全码即开发者在API控制台申请AKAKAPP一一对应)时提供的APP签名的SHA1+”;”+包名

(具体可参考http://developer.baidu.com/map/index.php?title=androidsdk/guide/key)。

请求服务必须要携带该安全码作为参数,不携带或者携带不一致的安全码给服务端,均会返回230错误。

一般的解决方式: 

 查看一下APP当前签名的SHA1值(注意不是MD5)和包名,然后去API控制台把查看该AK对应配置的安全码是否和           APP实际的一致

 如果检查后数字签名、包名、API_KEY没错的话,就是下面说的第二种问题了。


总结下:

出现

baidumapsdk: Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败

的可能有两种

【1】AK错误 :那么就检查你的数字签名和包名有没有弄错

                          (我的检验后证明不是第一种错误)

        

【2】签名文件没有打包到程序

  菜单栏选择 file -> project structure,选择应用的modules

改以下三处: 
1. signing选项卡,新增一个 config , 加完后填入你的key file的alias(别名)、 password(密码)、存储文件的位置等信息。

2.flavors选项卡,里面的 signing config 选择你刚新加的 config 

3.build types选项卡,里面的 debug 或 release, 都将 Signing Config 选择位新增加的config

这样每次debug出来的apk,就自带签名了



现在运行在手机的地图demo可以正常显示百度地图了,但是还没定位的功能

定位功能--下一篇见晓吧

点击打开链接




ps:

1.这个解决方案得感谢: 方法提供者

 

你可能感兴趣的:(Android,之旅)