1

私はlinuxubuntu10.10を使用しました.......私のandroiddebug.keystoreは場所にあります~/.android/debug.keystore

http://code.google.com/android/add-ons/google-apis/mapkey.htmlで説明されているように、次のターミナルコマンドを使用しました

rakib@rakib-laptop:~/.android$ \
> keytool -list \
> -alias androiddebugkey \
> -keystore "~/.android/debug.keystore" \
> -storepass android \
> -keypass android

次のエラーが返されます

list: unrecognized option '-keypass'
list: Try 'list -help' for more information

なぜこれがオプション-keypassを認識しないのか分かりません.......他の誰もがこれを使用しています。

4

4 に答える 4

5

したがって、 StackOverflow.comAndroid-Developer-googleGroupでの一連の迅速な参加のおかげで、解決策は明確になりました.....誰かが持っている場合に備えて、私がどのように解決したかを簡単に説明します。同様の問題

私のAndroid開発者debug.keystoreファイルは私のLinuxの次の場所にあります

~/.android/debug.keystore

次に、私は、マップAPIキーを取得するcd ~ためのAndroid用Googleプロジェクトのページに記載されている手順に従って、debug.keystoreのmd5フィンガープリントを取得します。

rakib@rakib-laptop:~$ \
> keytool \
> -list \
> -alias androiddebugkey \
> -keystore ~/.android/debug.keystore \
> -storepass android \
> -keypass android

しかし、それは愚かなイライラするエラーを返しました

list: unrecognized option '-keypass'
list: Try 'list -help' for more information

それは私がすべてのフォーラムやディスカッションなどを始めたときですが、正しい解決策を見つけられませんでした。いくつかのフォーラム投稿の後、keytoolへの単純な呼び出しは、不要なkeytool(Java用のGNUコンパイラからのものであるように見えるkeytoolを参照していることがわかりました。Androidには、Sun /OracleJavaのキーツールが必要です。

したがって、Linuxシステムにあるさまざまなkeytoolプログラムのすべてのインスタンスを見つけるために、次のことを行いました。

rakib@rakib-laptop:~$ locate keytool

そしてそれは私に次のリストを与えました

/etc/alternatives/keytool
/etc/alternatives/keytool.1.gz
/home/rakib/java-WTK-2.5.2/bin/mekeytool
/usr/bin/gkeytool-4.4
/usr/bin/keytool
/usr/lib/jvm/java-1.5.0-gcj-4.4/bin/keytool
/usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/keytool
/usr/lib/jvm/java-1.5.0-gcj-4.4/man/man1/keytool.1.gz
/usr/lib/jvm/java-6-sun-1.6.0.24/bin/keytool
/usr/lib/jvm/java-6-sun-1.6.0.24/jre/bin/keytool
/usr/lib/jvm/java-6-sun-1.6.0.24/jre/man/ja/man1/keytool.1.gz
/usr/lib/jvm/java-6-sun-1.6.0.24/jre/man/man1/keytool.1.gz
/usr/lib/jvm/java-6-sun-1.6.0.24/man/ja/man1/keytool.1.gz
/usr/lib/jvm/java-6-sun-1.6.0.24/man/man1/keytool.1.gz
/usr/share/man/man1/gkeytool-4.4.1.gz
/usr/share/man/man1/keytool.1.gz
/var/lib/dpkg/alternatives/keytool

ビンゴ!!!非常に多くのkeytoolインスタンスが見つかりました。今、私はJava-6-sunJREのものを使用する必要があります。したがって、上記のlocatekeytoolコマンドから見つかったそのディレクトリにcdします

rakib@rakib-laptop:~$ cd /usr/lib/jvm/java-6-sun-1.6.0.24/jre/bin/

ターミナルがjava-6-sun/jre / binディレクトリ内にあるので、次のコマンドを入力しました-debug.keystoreファイルが〜/ .android / debug.keystoreにあったことを覚えていますか?

rakib@rakib-laptop:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/bin$ \
> ./keytool \
> -list -alias androiddebugkey \
> -keystore ~/.android/debug.keystore \
> -storepass android \
> -keypass android

そして出来上がり.....それは私が探していた私のAndroidデバッグ証明書のMD5フィンガープリントを返しました。

androiddebugkey, Mar 19, 2011, PrivateKeyEntry, 
Certificate fingerprint (MD5): 08:A6:77:9C:97:66:CA:00:B9:6B:82:6B:37:64:B8:14

java-6-sun / jre / binフォルダーからkeytoolコマンドを入力しているときは、「keytool」だけを記述してはならないことに注意してください。代わりに、端末がある現在のディレクトリ内のkeytoolを参照していることを示すために、ピリオドとスラッシュを付けて「./keytool」と記述する必要があります。

rakib@rakib-laptop:~$ WooooooHooooooooooooooo!!!!!

PostNote:私のjava-6-sun JREが私のubuntuのデフォルトのJava環境ではなかったため、間違ったキーツールを実行するというこの問題が発生していました。むしろ私のGNUjavaコンパイラはデフォルトのjava環境として設定されました。LinuxマシンのデフォルトのJava環境を変更するには、 Java用のUbuntuコミュニティヘルプを参照してください。

于 2011-03-19T14:47:44.583 に答える
2

あなたkeytoolはJava用のGNUコンパイラから来ているようです。AndroidにはSun/Oracle Javaが必要ですが、OpenJDKでも機能する場合があります。keytoolサポートされているJava環境からを使用してみてください。

于 2011-03-19T13:07:29.280 に答える
0

これを試して:

keytool -list -alias androiddebugkey -keystore .android/debug.keystore

構成されていない場合は、pwdを挿入していません。

これがお役に立てば幸いです。

于 2011-03-17T10:54:17.793 に答える
0

これがドキュメントのバグであるという事実を皆さんは見逃しています。

Keytoolの-listコマンドは-keypass引数を受け入れません。-listは秘密鍵にアクセスしないため、これは必要ありません。

引数なしで「keytool」を呼び出すと、次のようになります。

-リスト[-v| -rfc] [-protected] [-alias] [-keystore] [-storepass] [-storetype] [-providername] [-providerclass [-providerarg]] ... [-providerpath]

注:-keypassはありません

これは、次のドキュメントのバグです:http ://code.google.com/android/add-ons/google-apis/mapkey.html

Sun / Oracleのkeytoolの使用に切り替えたときに機能する理由は、この場合、バージョンがエラーを通知しないためです。しかし、あなたが上で見ることができるように-それはまた特にそれを使用しません。

公開鍵暗号は標準に基づいています。任意のツールがJavaの非標準キーストア形式にアクセスできる限り(またはPKCS12などの標準形式を使用している場合)、実際の署名を含むすべてのタスクにそのツールを使用でき、ツールを誘導できるMD5フィンガープリントを使用できます。あなたが同等でなければならないことを示すために。

偽の議論を提供しないでください、そしてあなたはあなたが最終的にどんなキーツールでも大丈夫でなければなりません。

編集:-storepass引数を受け入れないことに注意してください。キーストア全体を暗号化していて、暗号化パスワードを指定しない場合、キーストアはキーストアを認識せず、エラーが発生します。-storepass passwordを指定するか、プロンプトが表示されたらコマンドラインで指定できます。もちろん、パスワードが設定されているときにEnterキーを押すだけでは機能しません。

対照的に、-keypassは秘密鍵のパスワードを提供します。署名など、実際に秘密鍵にアクセスするコマンドでのみ使用されます。

于 2011-03-21T03:31:29.240 に答える