背景
我的 Android Studio 安装的是最新的 2023 Flamingo 版本, 现在需要在安卓中引用高德地图SDK, 根据官网上的教程生成key, 需要填一个 sha1, 但是按照官网教程输入命令后, 没有得到想要的 sha1 值, 出现问题的环境如下所示:
官网链接: Android 如何获取 SHA1 值?
看到默认密钥库口令是 android
, 输入了之后报错了:
我之前没设过什么口令, 试了一下如果直接回车, 不输入口令得到的结果又是这样的:
后面我又试了在 Android Studio 的 terminal 里输入, 在 Android Studio 的 D:\Android\Android Studio\jre\bin
目录下输入, 得到的结果都是跟上面一样的.
解决
查了好多文章, 发现是生成keystore和访问keystore的JDK版本不同导致的.
对于之前的 Android Studio 版本, 可能这个帖子是可行的 :
Android与百度地图开发中的密钥问题(keytool 错误: java.io.IOException: Invalid keystore format)
2023 Flamingo 版本最后的 jdk 路径是不一样的, 操作应该是下面这样:
点一下这个下拉框, 可以在这里看到 一个jdk 的路径, 这个就是生成keystore的JDK版本:
接下来在文件资源管理器中打开这个目录 (注意这个版本是 jbr 目录了, 之前是 jre ), 进入 cmd 命令, 输入官网给的命令就可以看到 sha1 了:
要用 debug.keystore
目录的全路径, 改成自己电脑的地址
keytool -list -v -keystore C:\Users\Tianqing\.android\debug.keystore