我找不到Android keytool。

272

我试图按照Android映射教程的步骤进行操作,并且到了需要获取API密钥的这一步

我已经找到了我的debug.keystore文件,但是在该目录下似乎没有keytool应用程序:

C:\Documents and Settings\tward\\.android>ls
adb_usb.ini      avd       debug.keystore  repositories.cfg androidtool.cfg  ddms.cfg  default.keyset

在这个目录下也没有keytool

C:\Android\android-sdk-windows\tools>ls
AdbWinApi.dll     apkbuilder.bat       etc1tool.exe         mksdcard.exe
AdbWinUsbApi.dll  ddms.bat             fastboot.exe         source.properties
Jet               dmtracedump.exe      hierarchyviewer.bat  sqlite3.exe
NOTICE.txt        draw9patch.bat       hprof-conv.exe       traceview.bat
adb.exe           emulator.exe         layoutopt.bat        zipalign.exe
android.bat       emulator_NOTICE.txt  lib

我使用Eclipse作为我的编辑器,并且相信我已经下载了所有最新的SDK。

我做错了什么?


13
好的。我发布了我的第二个问题,却因为第一个徽章得到了“飞絮”!请轻轻地嘲笑我 :-) - Tim
太棒了,你找到在Windows上获取发布SHA1的方法了吗? - Pankaj Nimgade
10个回答

446

keytool 是Java SDK的一部分,你可以在包含 javac 的目录中找到它。


154
明白: C:\Program Files\Java\jdk1.6.0_14\bin 谢谢 - Tim
5
可以在JRE中找到它…谢谢。 - Nick.T
4
一个有用的技巧是将输出保存到文件中,这样你就可以获取关键信息。只需要在结尾添加以下代码:> somefilename.txt - Nicolai Lissau
3
在 C:\Program Files\Java\jdk1.7.0_79\bin 目录下。 - Jean-François
20
我的路径是C:\Program Files\Android\Android Studio\jre\bin(使用的是Android Studio,而非Eclipse)。 - Tim Krins
如果您没有安装JDK,请从此处下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html - Shaurya Uppal

100

好的,这篇文章是六个月前发布的,但我想在这里为那些对API密钥/MD5指纹业务感到困惑的人添加一些信息。我花了一段时间才弄清楚,所以我认为其他人也可能遇到了麻烦(除非我就是那么笨)。

这些说明适用于Windows XP,但我想其他版本的Windows也类似。看起来Mac和Linux用户处理这个问题更容易,所以我不会涉及他们。

因此,为了在您的Android应用程序中使用地图视图,谷歌希望与他们联系,以便您可以签署Android Maps API服务条款协议。我认为他们不希望你开发任何与他们竞争的转向GPS应用程序之类的东西。我没有真正阅读它。哎呀。

因此,请访问http://code.google.com/android/maps-api-signup.html进行查看。他们希望您勾选“我已阅读并同意条款和条件”框并输入证书的MD5指纹。你可能会问什么是MD5指纹。我不知道,但只要按照我的方法做就行了,这样您的Android应用程序就不会受到伤害。

转到Start>Run并键入cmd以打开命令提示符。您需要导航到具有keytool.exe文件的目录,这可能因安装了哪个版本的JDK而略有不同。我的在C:\Program Files\Java\jdk1.6.0_21\bin中,但请尝试浏览Java文件夹并查看您的版本,然后相应更改路径。

在命令提示符中导航到C:\Program Files\Java\<“您的JDK版本”>\bin后,键入

keytool -list -keystore "C:/Documents and Settings/<"your user name here">/.android/debug.keystore"

用引号将其括起来。当然,“<您的用户名在此处>”将是您自己的Windows用户名。

(如果您无法找到此路径,并且您正在使用Eclipse,则可以检查Window>首选项> Android>构建,并查看“默认调试密钥库”)

按Enter键,它会提示您输入密码。只需按Enter键即可。 Voila,在底部是您的MD5指纹。 将指纹键入Android Maps API注册页面中的文本框中,然后点击生成API密钥。

这就是您所有辉煌的密钥,配有一个方便的示例xml布局,其中包含您输入的密钥供您复制和粘贴。


你帮我省去了一两个头疼。 - zabawaba99
在Windows上,那些不应该是反斜杠而不是正斜杠吗? - Ryan R
请注意,如果您使用的是jdk1.7,请添加修饰符“-v”。 - Ryan R
更多的人应该像你一样解释! - basickarl
@malfunction,在Windows上获取发布版本的SHA1有什么方法吗? - Pankaj Nimgade
哎哟!这很有帮助!谢谢。 - asitis

17

好的,我在 Windows 7 32 位系统中完成了此操作。

步骤1:转到 - C:\Program Files\Java\jdk1.6.0_26\bin,并首先运行 jarsigner.exe(双击)。

步骤2:找到 debug.keystore,在我的情况下是 - C:\Users\MyPcName\.android。

步骤3:打开命令提示符并转到目录 - C:\Program Files\Java\jdk1.6.0_26\bin,然后输入以下命令:keytool -list -keystore "C:\Users\MyPcName\.android\debug.keystore"

步骤4:现在它会要求 Keystore 密码。 (我正在找出... :-?)

更新:好的,在我的情况下密码是“android”。 -(我正在使用 Eclipse 进行 Android 开发,所以我从这里找到了它) 按照以下步骤进行:Windows>preferences>android>build>..
(查看`default Debug Keystore`字段。)



更改密钥库密码的命令(请参见此处):Keystore change passwords




10

上述的四步解决方案对我很有用,但它返回SH1密钥...而Google要求使用MD5密钥生成API密钥。

只需要在第3步的命令中添加“-v”。-像这样:

更新后的四步解答

好的,我在Windows 7 32位系统中执行了此操作。

第1步:转到-C:\Program Files\Java\jdk1.7.0\bin,并首先运行jarsigner.exe(双击)

第2步:找到debug.keystore(在Eclipse中:Windows/Preferences/Android/build..),在我的情况下是-C:\Users\MyPcName.android

第3步:打开命令提示符并进入目录-C:\Program Files\Java\jdk1.7.0\bin并给出以下命令:keytool -v -list -keystore“C:\Users\MyPcName.android\debug.keystore”

第4步:现在它将要求Keystore密码。默认值为'android'


6

我从未安装Java,但当你安装Android Studio时,它会在Android目录中自带一个版本。这是我的位置,你的路径可能类似。之后,你可以将keytool放入你的路径中,或者直接从该目录运行。

C:\Program Files\Android\Android Studio\jre\bin

2
这似乎比苹果OSX系统需要的更难找到。有太多矛盾的帖子。
对于MAC OSX Mavericks Java JDK 7,按照以下步骤定位keytool
首先确保安装了Java JDKhttp://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html 然后在命令提示符中输入: /usr/libexec/java_home -v 1.7 它会输出类似于:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytooljavac在同一目录下。例如:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

你可以从bin目录使用keytool工具。


2
如果您正在使用Windows上的Android Studio创建发布密钥库和已签名.apk,只需按照以下步骤操作:
1) Build > 生成已签名APK
2) 选择“创建新文件夹...”,选择密钥库的路径并输入所有必需数据。
3) 在您选择的目标位置使用密钥库(your_keystore_name.jks)创建第一个签名的apk。
如果您有像Android Studio这样的IDE,则我认为没有必要使用命令工具。

1
也许用于发现SHA1指纹? - Iyas

0

不需要使用命令行。

如果在ADK中选择FILE->"导出Android应用程序",它将允许你创建一个密钥,然后生成你的.apk文件。


0

这里没有提到的一件事情(但是让我无法运行keytool)是您需要以管理员身份运行命令提示符。

只是想分享一下...


这可能应该是一条注释,而不是一个答案。 - Ian R. O'Brien
1
我同意应该是一条评论,尽管这很不幸,你没有足够的声望来发表评论! - Joel Balmer

0

实际上,Eclipse导出将调用

java -jar android-sdk-windows\tools\lib\sdklib.jar com.android.sdklib.build.ApkBuilderMain

然后调用com.android.sdklib.internal.build.SignedJarBuilder。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接