使用Android SDK 调用高德业务返回 INVALID_USER_SCODE 时怎么办?

当返回INVALID_USER_SCODE(不是INVALID_USER_KEY哦),或错误码1008、32和7,可按照如下操作解决问题:

检查SHA1值

第一步:获取APK当前签名文件的SHA1

1、请参考工单高频问题提供的SHA1值获取方式取得您APK当前使用的SHA1值。

2、 也可以向程序中添加以下代码段获取当前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[i])
                .toUpperCase(Locale.US);
            if (appendString.length() == 1)
                hexString.append("0");
                hexString.append(appendString);
                hexString.append(":");
        }
        String result = hexString.toString();
        return result.substring(0, result.length()-1);
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    returnnull;
}





第二步:SHA1对比

官网控制台里找到您使用的Key,查看其当前填写的SHA1值与第一步获取的SHA1值是否匹配(debug或者release至少有一个与第一步获取的SHA1一致)。请注意不能带有空格SHA1严格校验大小写

第三步:确保SHA1值一致,如不一致请调整一致。

检查包名

1、Key注册时填写的包名应该与AndroidManifest.xml配置文件的package属性内容相一致,如不一致请调整。

2、Android Studio开发者请注意调整build.gradle文件的applicationid与package一致,如不一致将会导致鉴权失败。

3、请注意检查包名的大小写是否统一。

Key值填写位置:

1、通过AndroidManifest.xml配置Key。

<meta-data android:name="com.amap.api.v2.apikey" android:value="key" >//开发者申请的key </meta-data>





meta-data标签位置需要在application标签内部。

2、通过SDK提供的setApiKey(String key);接口设置Key,注意Key设置要在SDK业务初始化之前。

地图SDK的setApiKey(String key)方法在MapsInitializer类中。 搜索SDK的setApiKey(String key)方法在ServiceSettings类中。 定位SDK的setApiKey(String key)方法在AMapLocationClient类中。

如以上内容仍未解决您的问题,请创建工单
返回顶部 示例中心 常见问题 智能客服 公众号
二维码