android 高德地图出现【定位失败key鉴权失败】

一、debug模式下的SHA1,发布的版本正确获取SHA1的获取方式:
开发模式使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore
发布模式使用 apk 对应的 keystore,命令为:keytool -list -v -keystore xxxx.jks, xxxx.jks为应用创建的密钥库和密钥。

二、代码获得(release)

public static 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;
}

注意debug和release,两个的SHA1的值不能相同

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 8,942评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 1.寻找Terminal 配置环境变量 你需要将你的SDK中adb目录配置在path环境变量中 例如: D:\an...
    糊涂大仙阅读 8,719评论 0 1
  • 在此我以Android Studio为例,现在AS菜单栏Build下Generate Signed APK ,创建...
    盗梦如画阅读 262评论 0 0
  • 一. Keytool创建和导入命令 创建keystore和密钥对 为存在的keystore生成证书请求文件CSR ...
    sngths阅读 6,409评论 0 1