高德地图集成所遇的坑
INVALID_USER_SCODE报错
出现这个问题是因为生成key
的sha1
和App使用的应用不一致。
官方操作
首先,我跟着官方介绍一波神操作,我使用的是官方提供的第三种方式,使用 keytool(jdk自带工具)获取 SHA1
1、运行进入控制台。
2、在弹出的控制台窗口中输入 cd .android
定位到 .android 文件夹。
3、继续在控制台输入命令。
调试版本使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore
。 发布版本使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk
的 keystore 。
提示输入密钥库密码,开发模式默认密码是 android,发布模式的密码是为 apk 的 keystore 设置的密码。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 Sha1 值,如下图所示:
说明:keystore 文件为 Android 签名证书文件。
终极解决方法
跟着官方操作之后,发现依然报错INVALID_USER_SCODE
验证不通过,分别使用debug.keystore
和keystore
中的SHA1也不可以,搞了半天,晚上回来后又仔细看了一下报错信息。
发现图中报错的SHA1和通过官方方式得到的SHA1是不一样的。也就是说当时App使用的这个SHA1,所以我们把此SHA1复制到高德地图管理台,然后生成Key即可解决问题。
谨记仔细看报错信息!
PS:虽然找到问题的解决方法,但是一直不能明白为什莫,两个SHA1会不一致,有明白的大神可以指点一下。
segmentfault文章地址 https://segmentfault.com/a/1190000015368789