Android SHA1发布密钥库不支持Google地图

ama*_*hrt 31 android google-maps sha1

我正在使用谷歌地图Android API,我遇到了一些问题.

我正在用android studio签署我的apk(在.android/keystore.jks创建一个).我也选择"发布"作为其中的类型.我用过这个命令

keytool -list -v -keystore C:\Users\Toshiba\.android\keystore.jks
Run Code Online (Sandbox Code Playgroud)

从密钥库中获取SHA1指纹.

SHA1是正确的,但地图不会显示在已签名的APK上.它显示在调试APK中.

使用keytool和release keystore(keystore.jks)会得到我:

 SHA1: 33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX
Run Code Online (Sandbox Code Playgroud)

调试工作正常(我在谷歌的API控制台中添加了2)

33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX;yac.breakingpoint
7C:28:61:5B:C3:4A:5C:50:44:AA:FD:58:69:E9:70:91:XX:XX:XX:XX;yac.breakingpoint
Run Code Online (Sandbox Code Playgroud)

XX被涂黑了.

keytool说它使用SHA256withRSA作为调试和发布密钥库的签名算法.

我究竟做错了什么?

更新 所以我尝试了一个新的API密钥,清理项目并重建它,新的密钥库 - 仍然无法发布...调试很好!

更新2 仍未找到工作解决方案......帮助我!

更新3好吧,使用带有构建类型调试的签名APK工作.提取CERT.RSA并运行keytool -printcert -file ./CERT.SA.获得与发布版本类型相同的结果.在发布它不起作用!

更新4 这是我做的另一个尝试:

  • 创建了一个新的GIT存储库,提交给它.
  • /build文件夹不beeing COMMITED,因为他们在.gitignore文件中.
  • 在API控制台中创建了一个新的API密钥,并仅向其添加了版本 SHA1密钥.
  • 将API密钥添加到应用程序并通过重建完全清理.
  • 生成一个新签名的APK文件

那没起效.

更新5我的 一位朋友试图重现这个问题.使用android studio时,他有完全相同的问题.可能是android工作室的bug?

小智 73

您有两个google_maps_api.xml文件

这个文件夹中有一个:

app/src/debug/res/values

其他在此文件夹中:

app/src/release/res/values

但是只有调试版可能包含您的API密钥.

  • 天啊!!我简直不敢相信!非常感谢.有一个文件`app/src/release/res/values/google_maps_api.xml`包含默认值..它有效! (6认同)
  • Thhhhhhhhaaaaaaaaaank你!!! 我失去了两天,并尝试了我现在真正要亲吻的一切!我总是用CTRL + SHIFT + N打开,我从来没有注意到有两个不同的文件,总是快速点击ENTER. (2认同)