获取Google Maps API密钥的MD5指纹调试证书时无法识别的选项-keypass

Rak*_*kib 1 android google-maps keytool

我使用linux ubuntu 10.10 .......我的android debug.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
Run Code Online (Sandbox Code Playgroud)

并返回以下错误

list: unrecognized option '-keypass'
list: Try 'list -help' for more information
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这不能识别选项-keypass .......每个人都在使用它.

Rak*_*kib 5

所以,感谢StackOverflow.comAndroid-Developer-googleGroup的一系列快速参与,现在解决方案很明确.....让我简要介绍一下如何解决它,以防万一你们有一个类似的问题.

我的android开发人员debug.keystore文件位于我的linux中的以下位置

~/.android/debug.keystore
Run Code Online (Sandbox Code Playgroud)

然后我cd ~按照Google Projects for Android页面中提到的步骤获取Maps API密钥以获取我的debug.keystore的md5指纹

rakib@rakib-laptop:~$ \
> keytool \
> -list \
> -alias androiddebugkey \
> -keystore ~/.android/debug.keystore \
> -storepass android \
> -keypass android
Run Code Online (Sandbox Code Playgroud)

但它返回了一个愚蠢的令人沮丧的错误

list: unrecognized option '-keypass'
list: Try 'list -help' for more information
Run Code Online (Sandbox Code Playgroud)

那是我开始所有的论坛和讨论等但没有找到正确的解决方案.在几篇论坛帖子之后,我想到我对keytool的简单调用是指一个不需要的keytool--一个似乎来自GNU Compiler for Java的keytool.Android需要Sun/Oracle Java的keytool

因此,我做了以下工作,以找出我在linux系统中的所有不同keytool程序的实例.

rakib@rakib-laptop:~$ locate keytool
Run Code Online (Sandbox Code Playgroud)

它给了我以下清单

/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
Run Code Online (Sandbox Code Playgroud)

答对了!!!已找到如此多的keytool实例.现在我需要在Java-6-sun JRE中使用它.所以,cd到上面的locate keytool命令找到的那个目录

rakib@rakib-laptop:~$ cd /usr/lib/jvm/java-6-sun-1.6.0.24/jre/bin/
Run Code Online (Sandbox Code Playgroud)

既然终端在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
Run Code Online (Sandbox Code Playgroud)

并且瞧.....这返回了我正在寻找的我的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
Run Code Online (Sandbox Code Playgroud)

请注意,当我从java-6-sun/jre/bin文件夹中键入keytool命令时,您不能编写JUST"keytool".你必须写一个"./keytool" - 用句号和斜杠来表示你指的是终端所在当前目录中的keytool .

rakib@rakib-laptop:~$ WooooooHooooooooooooooo!!!!!
Run Code Online (Sandbox Code Playgroud)

PostNote:执行错误的keytool的问题正在发生,因为我的java-6-sun JRE不是我的ubuntu中的默认java环境.而我的GNU java编译器被设置为默认的java环境.要更改linux机器中的默认Java环境,请参阅 Ubuntu社区帮助Java