转载地址:http://m.blog.csdn.net/article/details?id=50448014
请尊重原创
今天这篇文章会给大家介绍三个问题:
1,接入API时出现invalid_user_scode问题
首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题
因为项目需要接入高德地图的API,在接入其它API时会出现类似问题,在进行定位的时候出现了下列问题
运行时log信息如下
可以看到,定位失败有两个原因:
1,错误代码为10,定位服务启动失败。
2,错误代码为7,key错误。
根据高德地图的官方使用文档的介绍,对相关问题进行处理
问题1:服务启动失败:检查清单配置文件Androidmanifest.xml,服务已经配置完成,如下
<service android:name="com.amap.api.location.APSService"/>
后来对比高德地图给的demo才发现,是因为少加了一个jar包,如下图中未添加蓝色选中的包
添加上之后,运行程序,进行定位操作,log信息如下:
由log所打印的信息,可以看出三点:
1,定位服务启动失败问题已解决,现已启动成功
2,key错误问题仍旧存在
3,调用定位方法时是每隔一小段时间便进行一次定位
接下来,需要解决问题2。
问题2:key错误,官方文档中说,请仔细检查key绑定sha1与签名的apk的sha1是否一致:
在解决该问题时发现我犯了两个不该犯的错误:
第一,在build.gradle文件中忘记添加代码:
android {
signingConfigs {
//调试版的keystore
debug {
storeFile file("keystore文件所在位置")
storePassword "你规定的密码"
keyAlias "在创建keystore时你所填写的alias"
keyPassword "你规定的密码"
}
//发布版的keystore
release {
storeFile file("keystore文件所用位置")
storePassword "你规定的密码"
keyAlias "在创建该keystore文件时你所写的alias"
keyPassword "你规定的密码"
}
}
}
第二,在申请key时,我的sha1填写格式错误,错误示范如下:
正确的填写格式如下: