4

JDKのkeytoolを使用して、GoogleMapsAPIのキーフィンガープリントを生成しています。何度か拒否されましたが、最近JDKを1.7にアップグレードしたことに気付きました。そこで、ディレクトリをJDK6に切り替え(神に感謝します。古いバージョンが残っています)、同じコマンドを繰り返しました。

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

とバン!できます。JDK7がMD5ではなくSHA1フィンガープリントを生成したことが判明したため、Googleへの送信が拒否されました。だから、なぜこれが新しいバージョンのJDKで起こるのか疑問に思います。誰か手がかりがありますか?

4

4 に答える 4

2

このkeytoolコマンドには-keyalg、アルゴリズム名を取り、そのアルゴリズムに従ってキーを生成するパラメーターがあります。私が理解している限り、それはそのコマンドのデフォルトのアルゴリズムが変更されたことを意味します。

それが意識的な選択なのかバグなのかはわかりません。Oracleに報告することをお勧めします。

于 2011-01-21T13:27:08.710 に答える
1

keytool.exe -vは、MD5などのさまざまなフィンガープリントを提供します。

例:C:[jedk path] \ 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 MD5withRSAjarsignerで使用します。

于 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 に答える