4

我正在使用 JDK 的 keytool 来生成 Google Maps API 密钥指纹。在多次被拒绝的过程中,我意识到我最近将 JDK 升级到了 1.7。所以我将我的目录切换到 JDK6(感谢上帝,旧版本仍然存在。),并重复相同的命令:

D:\.android>"C:\Program Files\Java\jre6\bin\keytool" -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

和砰!有用。原来是JDK7生成了SHA1指纹而不是MD5,导致我提交给谷歌被拒绝了。所以我想知道为什么新版本的JDK会发生这种情况。有人有一些线索吗?

4

4 回答 4

2

keytool命令的参数-keyalg采用算法名称并根据该算法生成密钥。据我了解,这仅意味着该命令的默认算法已更改。

我不知道这是一个有意识的选择还是一个错误 - 您可能想向 Oracle 报告它。

于 2011-01-21T13:27:08.710 回答
1

keytool.exe -v 为您提供不同的指纹,例如 MD5 等。

示例:C:[jedk 路径]\bin\keytool.exe" -v -list -keystore "C:\Document s and Settings\Administrator.android\debug.keystore"

于 2011-08-09T12:57:04.760 回答
0

-digestalg SHA1 -sigalg MD5withRSA与 jarsigner 一起使用。

于 2011-11-07T14:19:44.563 回答
0

详细说明接受的答案:

使用 JDK 1.7 我遇到了授权失败问题。我终于弄清楚了如何使用 SHA1 生成正确的调试密钥库。这是我使用的命令:

keytool -genkey -v -keyalg RSA -sigalg SHA1withRSA -keystore "%USERPROFILE%\.android\debug.keystore" -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"

生成后,可以使用命令查看:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

签名算法现在应该是“SHA1withRSA”。复制 SHA1 指纹并将其粘贴到 Google 控制台“Android 应用程序密钥”中,您应该可以开始使用了。

于 2013-09-30T16:03:54.150 回答