密钥库文件不存在。

45

我正在尝试在一个项目中使用Google Maps API,在设置API凭证的方向上,它要求我将我的应用程序的SHA-1签名证书指纹添加到API中。

在说明中,它要求使用以下命令获取指纹:

keytool -list -v -keystore mystore.keystore
当我尝试使用它,无论是在Android Studio终端还是在我的应用程序目录下的cmd提示符中,我都会收到以下错误:
keytool error: java.lang.Exception: Keystore file does not exist: C:\Users\Name\.keystore

注意,我的应用程序位于D:\ Projects \ Android \ AppName中。

我该如何获取SHA-1签名证书以在Google Maps API中使用?


您是否已经创建了密钥库? - Code-Apprentice
14个回答

56

调试密钥库文件不在应用程序目录中,而是在您的.android目录中。如果您使用的是Windows,则可能位于C:\ Users \ yourname \ .android (其中“yourname”是您自己的用户目录,而不是“ yourname”)。

一旦您知道它在哪里,您可以像这样运行keytool:

    keytool -list -v -keystore "C:\Users\yourname\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

3
你的回答对我很有帮助。我尝试了 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v 命令,当我按照你的指引更改为 C:\Users\yourname时,命令成功运行了。 - YoussefDir
这里也是(YoussefDir)。我不知道为什么。它所报告的错误似乎已经到了正确的文件夹中。无论如何@Rapunzel,它起作用了。谢谢! - Tosh
你的回答节省了我的时间。谢谢 @Rapunzel - Malisha De Silva

47
获取 Android 应用程序的 SHA-1 最简单的方法如下: (注意:只能在 Android Studio 中完成)
1)打开您的项目
2)点击 Android Studio 窗口右上角的“Gradle”选项卡
3)如果没有显示任何内容,请点击 Gradle 窗口左上角的“刷新所有 Gradle 项目”图标(蓝色图标)
4)从内容中选择包含您项目名称的内容
5)转到“Tasks”->“android”->“signingReport”
6)它将打开一个控制台,在其左上角单击“Toggle tasks executions/text mode”图标
现在,您将能够在控制台中看到有关您的项目的 SHA-1 信息以及其他大量信息。 此链接包含突出显示上述步骤的图像 检查后,请确保将配置模块更改为当前项目。要执行此操作,请按照以下步骤操作:
1)单击“选择运行/调试配置”下拉菜单
2)选择应用程序
3)再次单击“选择运行/调试配置”下拉菜单,然后选择“编辑配置”
4)选择“常规”选项卡,并将“模块”更改为“应用程序”,还要勾选“激活工具窗口”复选框。

5) 点击 'ok'

现在,您可以通过点击运行按钮来像以前一样运行项目。

此链接包含一个突出显示上述步骤的图像

希望这有所帮助。


非常感谢你!你真的节省了我的时间,我一直在尝试通过控制台获取SHA1,但一次又一次地出现错误。谢谢! - Sveta Antrapovich

20

查找应用程序的SHA-1,您可以执行以下操作: 在Android Studio右侧单击Gradle,然后单击任务-> Android-> signingreport,您将在下方控制台中找到应用程序的SHA-1。 enter image description here

要生成签名密钥文件,您需要生成签名构建APK。要生成签名构建APK,请单击Build-> generate signing apk->creaenew,然后按照提供的步骤操作,您将在所需位置找到您的密钥文件。谢谢


现在,当我按下“运行”按钮时,应用程序不再安装和运行在我的设备上,它只显示我给你发送的截图。我该如何撤消这个操作并将Gradle还原回去? - FlameDra
你的意思是在Android Studio右侧没有看到Gradle图标吗? - singh.indolia
请您发送给我您的Android Studio的完整截图,这样我才能更清楚地告诉您。 - singh.indolia

20

重要提示: 请注意,如果您尚未在Android Studio中运行任何应用程序,则不会生成debug.keystore。 即:只有在Android Studio上首次运行应用程序后,才会生成debug.keystore。

但是,您也可以在命令行上生成签署Android应用程序的发布/调试密钥库。

  1. 用于在开发期间签署Android应用程序的调试密钥库需要特定的别名和密码组合,根据谷歌的规定。要创建调试密钥库,请使用:
    $ keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000

  • 密钥库名称: "debug.keystore"
  • 密钥库密码: "android"
  • 密钥别名: "androiddebugkey"
  • 密钥密码: "android"
  • CN: "CN=Android Debug,O=Android,C=US"

为了访问密钥指纹:

  1. 打开C盘,按照此路径前往 C:\Program Files\Java\jdk1.8.0_201\bin
  2. 然后用bin文件夹打开cmd
  3. 现在执行命令
$ keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v 

如需进一步澄清,请参考:

https://developer.android.com/studio/publish/app-signing#debugmode https://coderwall.com/p/r09hoq/android-generate-release-debug-keystores


9
以下将为您提供默认调试密钥的SHA1、SHA256、MD5。这可用于使用Google Play服务进行开发和调试。 Linux & Mac命令
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Windows

keytool -exportcert -keystore C:\Users\<USERNAME>\.android\debug.keystore -list -v

将其中的“”替换为您的Windows帐户名称,例如:

keytool -exportcert -keystore C:\Users\Aakash\.android\debug.keystore -list -v

2
+1 给 Mac 版本,它完美地运行了。因此,在将其直接粘贴到终端之前,您可以编辑 -storepass 或 -keypass(如果需要的话)。 - Iqra.

8
我从teamtreehouse论坛找到了这个解决方案,解决了我的问题。请按照以下步骤操作:
1)按下“开始+R”键,输入cmd.exe打开命令提示符。
2)使用Windows资源管理器,找到JDK目录的位置(通常在Program Files>>Java下),并复制路径。
3)在命令提示符中,输入cd,后跟你的JDK bin目录的路径。例如:我使用的命令是cd C:\Program Files\Java\jdk1.8.0_25\bin(你的可能不同)。
4)使用Windows资源管理器,找到.android目录的位置(通常在用户>>[你的Windows用户名]下),并复制路径。
5)现在,使用以下命令:
keytool -exportcert -alias androiddebugkey -keystore[PATH_TO_.ANDROID_DIRECTORY] -list -v

用复制的路径替换[PATH_TO_.ANDROID_DIRECTORY]。请注意,您应该在JDK的bin目录中的终端/命令提示符中运行此命令(您在第3步中执行了此操作)。

我的是C:\Program Files\Java\jdk1.8.0_121\bin>keytool -exportcert -alias androiddebugkey -keystore C:\Users\HoSiLuan\.android\debug.keystore -list -v

记得使用C:\Users\HoSiLuan\.android\debug.keystore而不是~/.android\debug.keystore。使用缩写方式时我仍然遇到错误。

然后输入密码,通常为android。之后,您将看到打印到屏幕上的证书列表。


3
这是命令行指令,密码为android。
keytool -exportcert -list -v -alias androiddebugkey -keystore C:\Users\rashi\.android\debug.keystore       

将密钥库路径更改为您的 .android 文件夹路径


3

对于Windows操作系统:
1. 打开控制台,进入你的Android项目所在的目录
2. 运行keytool命令。若提示该命令不存在,请执行步骤3;否则直接跳到步骤4
3. 转到Java JDK所在的文件夹,例如:cd 'C:\Program Files\Java\jdk1.8.0_211\bin\'或安装JDK
4. 执行以下命令:
.\keytool.exe -list -v -keystore PROJECT-FOLDER\android\app\debug.keystore -alias androiddebugkey -storepass android -keypass android


2
"最初的回答":将这行代码以单行格式放置 =>
keytool -list -v  -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

不要将一行代码分成上下两部分。还有一个重要的事情是,删除/,使其变为-v -alias ....等。

1

最简单的方法:

只需进入 Windows 中的用户目录,比如:

C:/Users/your_profile/.android/debug.keystore

将此用作目标位置。

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