270

我正在尝试遵循 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。

我究竟做错了什么?

4

10 回答 10

445

keytool随 Java SDK 一起提供。您应该在包含javac等的目录中找到它。

于 2010-06-08T14:50:54.533 回答
100

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

这些说明适用于 Windows XP,但我想其他版本的 Windows 也类似。看起来 Mac 和 Linux 用户在这方面更容易,所以我不会解决它们。

因此,为了在您的 Android 应用程序中使用地图视图,Google 希望与他们签到,以便您可以签署 Android 地图 API 服务条款协议。我认为他们不希望您制作任何转弯 GPS 应用程序来与他们或其他的竞争。我真的没读过。哎呀。

所以去http://code.google.com/android/maps-api-signup.html看看吧。他们希望您选中“我已阅读并同意条款和条件”框并输入您证书的 MD5 指纹。Wtf 就是这样,你可能会说。我不知道,但只要照我说的做,你的 Android 应用程序就不会受到伤害。

转到开始>运行并键入 cmd 以打开命令提示符。您需要导航到包含 keytool.exe 文件的目录,根据您安装的 JDK 版本,该文件的位置可能略有不同。我的在C:\Program Files\Java\jdk1.6.0_21\bin但尝试浏览到 Java 文件夹并查看您拥有的版本并相应地更改路径。

在命令提示符中导航到 C:\Program Files\Java\<"your JDK version here">\bin 后,键入

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

与引号。当然 <"your user name here"> 将是您自己的 Windows 用户名。

(如果您在查找此路径时遇到问题并且使用的是 Eclipse,则可以检查 Window>preferences>Android>Build 并检查“Default Debug keystore”)

按回车,它会提示您输入密码。只需按回车键。瞧,底部是您的 MD5 指纹。在 Android Maps API 注册页面的文本框中输入您的指纹,然后点击 Generate API Key。

您的钥匙尽在其中,有一个方便的示例 xml 布局,您输入的钥匙供您复制和粘贴。

于 2010-12-12T05:19:13.770 回答
17

好的,我是在Windows 7 32 位系统中完成的。

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

step2:找到 debug.keystore,在我的例子中是 - C:\Users\MyPcName\.android

step3:打开命令提示符并转到目录 - C:\Program Files\Java\jdk1.6.0_26\bin 并给出以下命令: keytool -list -keystore "C:\Users\MyPcName\.android\debug.keystore"

第 4 步:它现在会要求输入密钥库密码。(我正在弄清楚...... :-?)

更新:在我的情况下,密码是“android”。- (我正在使用 Eclipse for android,所以我在这里找到了它) 按照 eclipse 中的步骤操作: Windows>preferences>android>build>..
(查看“默认调试密钥库”字段。)



更改密钥库密码的命令(查看此处):密钥库更改密码



于 2011-06-29T10:32:16.093 回答
10

上面的 4 步答案对我有用,但它返回 SH1 密钥......但谷歌要求 MD5 密钥来生成您的 API 密钥。

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

更新的 4 步答案

好的,我是在 Windows 7 32 位系统中完成的。

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

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

step3:打开命令提示符并转到目录 - C:\Program Files\Java\jdk1.7.0\bin 并给出以下命令: keytool -v -list -keystore "C:\Users\MyPcName.android\debug.keystore"

第 4 步:它现在会要求输入密钥库密码。默认为“安卓”

于 2011-10-21T09:57:53.137 回答
6

我从未安装过 Java,但是当您安装 Android Studio 时,它在 Android 目录中有自己的版本。这是我所在的位置。你的路径可能类似。之后,您可以将 keytool 放入您的路径,也可以从该目录运行它。

C:\Program Files\Android\Android Studio\jre\bin
于 2018-07-06T22:46:13.203 回答
2

这似乎比 OSX 需要的要难得多。相互冲突的帖子太多

对于 MAC OSX Mavericks Java JDK 7,请按照以下步骤查找keytool

首先确保安装Java JDK

http://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

keytool与 位于同一目录中javac。IE:

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

bin目录中,您可以使用keytool.

于 2014-02-06T20:42:29.957 回答
2

如果您使用 Android Studio for Windows 创建发布密钥库和签名的 .apk,只需按照以下步骤操作:

1) 构建 > 生成签名的 APK

2) 选择“新建...”,选择密钥库的路径,然后输入所有需要的数据

3) 创建您的密钥库 (your_keystore_name.jks) 后,您将使用它在您选择的目的地创建您的第一个签名 apk

如果您有像 Android Studio 这样的 IDE,我还没有看到需要使用命令工具。

于 2014-02-10T21:50:34.550 回答
0

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

只是想分享一下...

于 2012-12-16T23:17:25.260 回答
0

无需使用命令行。

如果您在 ADK 中使用 FILE->“导出 Android 应用程序”,那么它将允许您创建一个密钥,然后生成您的 .apk 文件。

于 2013-11-14T21:17:27.710 回答
0

其实eclipse导出会调用

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

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

于 2011-10-13T12:44:22.833 回答