在Android项目中(百度地图),报错:key验证出错,请在AndroidManifest.xml文件中检查key设置
来源:互联网 发布:淘宝旺旺头像 编辑:程序博客网 时间:2024/06/05 10:13
在Android项目中(百度地图),报错:key验证出错,请在AndroidManifest.xml文件中检查key设置
首先,了解下什么是230错误:
为增强移动APP对百度开发SDK/API服务访问的控制,也避免恶意开发者对百度地图服务进行攻击,我们对Mobile类型(Android/IOS)的服务请求进行了安全码校验;所谓安全码即开发者在API控制台申请AK(AK和APP一一对应)时提供的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,就自带签名了
还有下面错误的:
6. 定位SDK并只使用GPS模式(不联网)定位返回505错误。
说明:定位SDK需要联网进行key验证,如果使用定位SDK而不使用网络定位(或者不开启网络),仅使用GPS定位的话,使用系统的定位接口即可
常见问题解决方法汇总?请参考:key验证常见问题总结
如何获取SHA1?详细的方法请参考:Android Studio 和 Eclipse 中获取SHA1详解
如何获取AK或者key?详细的方法请参考:官方教程
鉴于Android版SDK中出现的大量key验证失败问题,基本上都是在API控制台申请AK的时候填写的包名或者SHA1不正确导致的(包名或者SHA1的获取详见官方教程)。搜索log,若出现"Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败",则认真阅读下面的内容。如果想快速解决验证问题,可以使用下面提供的安全码校对工具获取APP正确的包名和SHA1值,并将这两个值更新到API控制台对应的AK上即可。安全码校对工具: MCodeCheck.zip 。打开应用后,找到自己开发的APP(默认最新安装的APP排在最上面),点击后会弹出对话框显示包名和SHA1值。
打开API控制台,将上面显示的包名和SHA1值更新到对应的ak中即可(注意:在填入SHA1和包名的时候不能带有空格)。
区分debug版和release版签名文件打包的开发者特别注意:
debug版签名文件:是指在开发过程中从Android Studio或者Eclipse中直接调试运行的apk使用的签名文件,一般是开发工具自动处理的。
release版签名文件:是指在提交测试或发布时候,选择指定的签名文件进行打包的签名文件,一般同一个APP使用一个统一的签名文件。
1.什么是230错误
为增强移动APP对百度开发SDK/API服务访问的控制,也避免恶意开发者对百度地图服务进行攻击,我们对Mobile类型(Android/IOS)的服务请求进行了安全码校验;所谓安全码即开发者在API控制台申请AK(AK和APP一一对应)时提供的APP签名的SHA1+”;”+包名(具体可参考http://developer.baidu.com/map/index.php?title=androidsdk/guide/key)。
请求服务必须要携带该安全码作为参数,不携带或者携带不一致的安全码给服务端,均会返回230错误。
2.如何解决230错误
目前我们发现主要是Android类型的APP存在该参与错误,安全码是sdk自动从APP配置中获取的,开发者无需自己填写。当出现230错误时,请开发者先查看一下APP当前签名的SHA1值(注意不是MD5)和包名,然后去API控制台把查看该AK对应配置的安全码是否和APP实际的一致,如果不一致请去API控制台手动修改一致即可~~
再说一下出现这些的原因是是什么?
原因一:AK错误
仔细检查一下你的应用中使用的AK是否正确,和生成该AK的数字签名(SHA1)、包名是否跟你当前的程序一致。
如图是我获取的用来测试的AK:
生成该AK的数字签名和包名如下:
如果不正确就重新申请AK,我仔细检查了一下,我的AK是正确的,那么就有可能是第二个原因了。
原因二:签名文件没有打包到程序中
因为我调试的时候直接使用run来进行编译与执行,但这时并没有把key file打包进去,所以会出现错误。
如我的 签名文件的位置是:C:\Users\yu.android\debug.keystore
密码是:android
步骤如下:
菜单栏选择 file -> project structure,选择应用的modules(如果当前只有一个应用那么只会显示app),修改以下三处:
1. signing选项卡,新增一个 config , 加完后填入你的key file的alias(别名)、 password(密码)、存储文件的位置等信息。如图
2.flavors选项卡,里面的 signing config 选择你刚新加的 config
3.build types选项卡,里面的 debug 或 release, 都将 Signing Config 选择位新增加的config
这样每次debug出来的apk,就自带签名了
还有一些其他的小原因,如 :
1)检查你的网络连接是否正常,
2)AndroidManifest文件是否进行权限的申请,
3)AK是否有正确进行了配置
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
承上所述,我的问题是这样解决的,不知道是否能帮(wu)到(dao)各位看官。
之前在搜索这个问题的时候,对某贴吧中有个人提出的几个点表示非常赞同
1)、在Android studio中,so文件应该放在src/main/jniLibs/armeabi/或者armeabi-v7a等中,而不是src/main/jniLibs/里(百度开发者中心的文档上介绍的时候是放置在jniLibs里的);
2)、百度地图操作中心点的类是MapStatus,不再是MapController;
3)、定位图标应绘制在定位图层上,而不是标注图层(标注图层上的mark点在移动地图的时候有飘移现象);
4)、android sutio在直接run的时候,安装在手机里的是debug版本,所以在测试的时候不能用release版的SHA1。
还是不能解决或许这一种方法可以救你!
问题出现场景
1,按照官方文档提示,进行环境搭建,在虚拟机上试跑。程序界面报错:“key验证出错!错误码230;...”
解决方案
1,把C:\Users\XXXX(看自己机器具体情况)\.android文件夹下的debug.keystore文件复制到项目中。2,具体复制到:项目/app文件夹下。(Project视图下)如果提示已有,就覆写。3,运行。成功。
(初始化失败也有可能是开发者平台中的配置没配置好(SHA1值和应用包名))
★解决:查看libs-armeabi-v7a文件夹中是否含有文件,armeabi-v7a中的文件有可能 会对百度导航sdk冲突,删除该文件
(另:
导航如果没有语音:
1.确认是否注册白名单http://app.navi.baidu.com/ttsregister/appinfo
2.确认asserts文件中是否含有BaiduNaviSDK_Resource_2.0.png和channel两个文件
3.确认libs-armeabi中是否含有libbd_etts.so文件,可到http://lbsyun.baidu.com/sdk/download下载;
项目集合时,百度地图各个功能的库冲突:
解决:到http://lbsyun.baidu.com/sdk/download下载整合后的库
实在不行进 最后一波详细的教你注册获取key 这样也许就可以了。
Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key
申请密钥
Android SDK
http://developer.baidu.com/map/index.php?title=androidsdk/guide/key#.E7.94.B3.E8.AF.B7.E6.AD.A5.E9.AA.A4
1:
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
- 在Android项目中(百度地图),报错:key验证出错,请在AndroidManifest.xml文件中检查key设置
- 在Android项目中(百度地图),报错:key验证出错,请在AndroidManifest.xml文件中检查key设置
- 百度度地图总是提示key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置解决办法
- 验证出错,错误码:230,请AndroidManifest.xml文件中检查 kye 设置。
- 验证出错,错误码:230,请AndroidManifest.xml文件中检查 kye 设置
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)---申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图 .
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- PHP---session
- 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 洞穴算是完成了
- CentOS7中IDEA或WPS无法切换中文输入法解决方案
- onTouch onClick onLongClick
- JDBC 详解 (二)
- 在Android项目中(百度地图),报错:key验证出错,请在AndroidManifest.xml文件中检查key设置
- [BZOJ2342][Shoi2011]双倍回文(manacher)
- iOS开发中,Your session has expired. Please log in.
- 11.文件与文件系统的压缩与打包
- Shell—输入/输出重定向
- 结构、联合、位字段、枚举
- lucene学习日志(一)
- 千分位格式化,并保留两位小数
- Java序列化技术性能分析(JDK原生与Protostuff)