我正在使用 Google Maps Android API,但遇到了一些问题。
我正在使用 android studio 签署我的 apk(在 .android/keystore.jks 创建一个)。另外,我选择“发布”作为其中的类型。我已经使用了命令
keytool -list -v -keystore C:\Users\Toshiba\.android\keystore.jks
从密钥库中获取 SHA1 指纹。
SHA1 是正确的,但签名的 APK 上未显示地图。它显示在调试 APK 中。
将 keytool 与发布密钥库(keystore.jks)一起使用将得到:
SHA1: 33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX
调试一个工作正常(我已经在 Google 的 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
XX 被涂黑了。
keytool 表示,它使用 SHA256withRSA 作为调试和发布密钥库的签名算法。
我究竟做错了什么?
UPDATE所以我尝试了一个新的 API 密钥、清理项目并重建它、新的密钥库 - 仍然无法在发布中工作...调试没问题!
UPDATE 2仍然没有找到有效的解决方案...帮助我!
UPDATE 3好吧,使用带有构建类型调试的签名 APK 使其正常工作。提取CERT.RSA并运行keytool -printcert -file ./CERT.SA
。获得与发布构建类型相同的结果。在发布中它不起作用!
UPDATE 4这是我所做的另一个尝试:
- 创建了一个新的 GIT 存储库,并致力于它。
- The
/build
文件夹没有被提交,因为它们位于.gitignore
files.
- 在 API 控制台中创建了一个新的 API 密钥,并仅添加了releaseSHA1 密钥。
- 将该 API 密钥添加到应用程序中,并通过重建进行全面清理。
- 生成新的签名APK文件
它不起作用。
UPDATE 5我的一个朋友试图重现这个问题。他在使用 android studio 时遇到了完全相同的问题。可能是 android studio 的 bug?