错误码1008、32和7;错误提示invalid_user_scode;返回key鉴权失败的解决办法:
- 检查SHA1值:
- 获取APK当前签名文件的SHA1:
*近期SDK会支持getSHA1()方法,专用于获取APK当前所签签名文件的SHA1值。
publicstatic String sHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_SIGNATURES); byte[] cert = info.signatures[0].toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA1"); byte[] publicKey = md.digest(cert); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < publicKey.length; i++) { String appendString = Integer.toHexString(0xFF & publicKey) .toUpperCase(Locale.US); if (appendString.length() == 1) hexString.append("0"); hexString.append(appendString); } return hexString.toString(); } catch (NameNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } returnnull; } - SHA1对比:在官网控制台(跳转: http://lbs.amap.com/dev/#/)里找到您使用的key,查看其当前填写的SHA1值与第一步获取的SHA1值是否匹配(debug或者release至少有一个一致),请注意不能带有空格,SHA1严格校验大小写。
- 确保SHA1值一致,如不一致请调整一致。
包名应该与AndroidManifest.xml配置文件的package属性内容相一致,如不一致请调整。
a.通过AndroidManifest.xml文件配置key <meta-data android:name="com.amap.api.v2.apikey" android:value="key">//您申请的key</meta-data> <meta-data>标签位置需要在<application>标签内部。
b.通过setKey(String key)接口设置key。 |