Android 高德地图API INVALID_USER_SCODE 错误

1、在Android studio 的 Terminal 中输入

keytool -genkey -v -keystore D:\keystore\tiandao.keystore -alias androiddebugkey -keyalg RSA -validity 1000


 

 

 2、继续在Terminal  输入:

keytool -v -list -keystore D:\keystore\tiandao.keystore

 

 

 3、使用android studio 创建jks 

 

 

 

 

key store password key alias  、key password 第一步的一致。

等生成jks 成功之后,再操作第四步。

4、继续在 android studio 的 terminal 中输入:

keytool -v -list -keystore D:\keystore\tiandao.jks

 

将这步生成sha1 复制高德 设置Key 中的 sha1的地方。

 

 

最简单方法是:用代码获取sha1,代码如下:

 

 //获取高德定位的sha1
    private 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 (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

 

posted @ 2021-07-16 19:19  大空白纸  阅读(880)  评论(0编辑  收藏  举报