【问题标题】:Keystore file doesn't exist密钥库文件不存在
【发布时间】:2015-01-18 04:08:17
【问题描述】:

我正在尝试获取 SHA1 指纹,以便获取 Google API 密钥。 我在以下目录中:

/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin

然后我从谷歌网站执行命令:

keytool -list -v -keystore mystore.keystore

但它给出了这个错误:

keytool error: java.lang.Exception: Keystore file does not exist: mystore.keystore
java.lang.Exception: Keystore file does not exist: mystore.keystore
    at sun.security.tools.keytool.Main.doCommands(Main.java:742)
    at sun.security.tools.keytool.Main.run(Main.java:340)
    at sun.security.tools.keytool.Main.main(Main.java:333)

我按照教程进行操作,但无法正常工作! 有谁知道我做错了什么?

顺便说一句:我正在使用带有 Xamarin Studio 5.5.2 的 Macbook Pro。

【问题讨论】:

  • 问题可能是你只是试图从某个地方运行命令复制而不知道实际上是什么,,(这也发生在我身上;)),一旦你知道它在哪里和什么寻找,或许你会得到答案。

标签: android xamarin google-api mono


【解决方案1】:

下面的命令应该可以工作:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

【讨论】:

    【解决方案2】:

    Linux 或 Mac 或 Windows,使用完整路径

    苹果机:

    keytool -list -v -keystore /Users/username/.android/debug.keystore
    -alias androiddebugkey -storepass android -keypass android
    

    Linux(在我的例子中是 Ubuntu):

    keytool -list -v -keystore /home/username/.android/debug.keystore
    -alias androiddebugkey -storepass android -keypass android
    

    窗户:

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

    希望它对你有用!

    【讨论】:

      【解决方案3】:

      如果您在 Windows 打开命令提示符并以管理员身份运行,然后粘贴 keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore 行。这应该有效,它对我有用

      【讨论】:

        【解决方案4】:
        keytool -list -v -keystore C:\Users\%USERNAME%\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
        

        试试这个来解决问题

        【讨论】:

          【解决方案5】:

          在我的例子中,debug.keystore 是在 Android Studio 上第一次运行应用程序后生成的

          【讨论】:

          • 在我的情况下是一样的
          【解决方案6】:

          我在 Windows 10 中也遇到了同样的错误。但是整理了一下,终于得到了SHA-1 Key。

          我遵循了这些步骤

          1.打开C盘,走这条路C:\Program Files\Java\jdk1.8.0_201\bin

          2.在bin文件夹内打开CMD并运行命令keytool -exportcert -list -v -alias androiddebugkey -keystore C:/Users/Username/.android/debug.keystore。 (用您的用户名替换用户名)。

          3.输入密码android

          【讨论】:

            【解决方案7】:

            我遇到了同样的问题,我发现我在另一个 .android 文件夹中有 .android 文件夹。 确保在您的系统上找到正确的 debug.keystore 文件路径

            我使用了这个命令,它成功了

            keytool -list -v -alias androiddebugkey -keystore C:\Users\User.android.android\debug.keystore

            【讨论】:

              【解决方案8】:

              我有同样的问题。 我的错误是

              keytool 错误:java.lang.Exception:密钥库文件不存在:/Users/[USER_NAME]/.android/debug.keystore java.lang.Exception:密钥库 文件不存在:/Users/[USER_NAME]/.android/debug.keystore 在 java.base/sun.security.tools.keytool.Main.doCommands(Main.java:910) 在 java.base/sun.security.tools.keytool.Main.run(Main.java:416) 在 java.base/sun.security.tools.keytool.Main.main(Main.java:409)

              我检查了我的 /Users/[USER_NAME]/.android/ 目录,但在那里找不到 debug.keystore 文件。

              原因

              我使用了 VSCODE,并且我确实通过 iOS 模拟器只为 iOS 运行了我的应用程序。

              解决方案:

              我打开 Android Studio 并使用 Android Emulator 运行我的 Android 应用程序。

              然后我在 .android/ 目录中获得了 debug.keystore 文件。

              然后我再次尝试了以下命令:

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

              它运行没有任何错误。

              希望对你有帮助。

              【讨论】:

                【解决方案9】:

                我有同样的错误 我正在使用 ubuntu 18.04

                解决方案:

                打开终端并导航到/home/{$user}/.android

                然后运行命令

                keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore

                系统会提示您输入密钥库密码输入android

                希望这会有所帮助。

                【讨论】:

                • 我刚刚跑了keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
                • 谢谢兄弟,它也适用于 Windows 10。你拯救了我的一天
                • 不知道密码是android。谢谢!
                【解决方案10】:

                我在 Windows 10 上遇到了同样的问题,并通过编写以下命令解决了该问题:

                keytool -list -keystore debug.keystore

                我认为使用其他一些命令 java 无法找到 debug.keystore 文件,但有趣的是,使用该命令它对我有用。

                【讨论】:

                  【解决方案11】:

                  我有windows 10,我去了路线

                  c:/Users/usuario/.android/
                  

                  在目录内,执行命令:

                  keytool -exportcert -keystore debug.keystore -list -v
                  

                  必须生成指纹:

                  SHA-1: 73:BE:1A:.......................
                  MDO: 73:BE:A1.........................
                  SHA-256: 3B:B8:98:...................
                  

                  【讨论】:

                  • 我收到此错误 - 'keytool' 未被识别为内部或外部命令、可运行程序或批处理文件。
                  【解决方案12】:

                  我遇到了同样的问题,但通过以下命令解决了:

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

                  操作系统: Windows 7

                  【讨论】:

                    【解决方案13】:

                    Linux 和 Mac 命令

                    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
                    

                    将为您提供默认调试密钥的 SHA1、SHA256、MD5。并且可以通过google play服务进行开发和调试。

                    如需发布证书,请关注https://developer.android.com/studio/publish/app-signing.html

                    【讨论】:

                      【解决方案14】:

                      我从 teamtreehouse 论坛找到了这份指南。希望对你有帮助。

                      1) 按Start+R并输入cmd.exe打开命令提示符

                      2) 使用 Windows Explorer,找到您的 JDK 目录所在的位置(通常是 Program Files >> Java)并复制路径。

                      3) 在 Command Prompt 中,输入 cd 后跟 JDK 的 bin 目录。例如:cd C:\Program Files\Java\jdk1.8.0_25\bin 是我使用的命令(您的可能会有所不同)。

                      4) 使用 Windows 资源管理器,找到您的 .android 目录所在的位置(通常在用户 >> [YOUR WINDOWS USERNAME] 下)并复制路径。

                      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&gt;keytool -exportcert -alias androiddebugkey -keystore C:\Users\HoSiLuan\.android\debug.keystore -list -v

                      记得使用C:\Users\HoSiLuan\.android\debug.keystore 而不是~/.android\debug.keystore。输入这种缩短方式时我仍然收到错误。

                      然后应该会提示您输入可以正常输入的密码(密码是 android)。之后,您将看到打印到屏幕上的证书列表。

                      【讨论】:

                      • 我完全按照你说的做了,但我仍然收到消息“文件不存在”...
                      • 我的是 C:\Program Files\Java\jdk1.8.0_121\bin>keytool -exportcert -alias androiddebugkey -keystore C:\Users\HoSiLuan\.android\debug.keystore -list -v
                      • 在“C:\Users[user]\AppData\Local\Xamarin\Mono for Android\debug.keystore”中找到它
                      【解决方案15】:

                      Mac 和 Ubuntu 的最新更新

                      keytool -exportcert -alias androiddebugkey -keystore  ~/.android/debug.keystore -list -v
                      

                      【讨论】:

                      • 不工作,keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified.
                      【解决方案16】:

                      请提供debug.keystore的完整路径。 示例:C:/Users/myusername/.android/debug.keystore 而不是 ~/.android/debug.keystore

                      【讨论】:

                        【解决方案17】:

                        你说你是从...运行命令

                        /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin
                        

                        您的密钥库文件也在那个目录中吗?如果没有,那么您需要指定密钥库文件的路径,例如

                        keytool -list -v -keystore ~/somefolder/mystore.keystore
                        

                        使用的密钥库应该是用于签署应用程序的密钥库。对于 Xamarin 调试版本,这将是位于 /Users/[USERNAME]/.local/share/Xamarin/Mono\ for\ Android/debug.keystore 的调试密钥库。 OSX 上的命令是...

                        keytool -list -v -keystore /Users/[USERNAME]/.local/share/Xamarin/Mono\ for\ Android/debug.keystore -alias androiddebugkey -storepass android -keypass android
                        

                        或在 Windows 7 上

                        keytool -list -v -keystore C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore -alias androiddebugkey -storepass android -keypass android
                        

                        【讨论】:

                        • 我找不到我的密钥库,我不确定它在哪个目录中。
                        • Google API 密钥所需的指纹需要从用于签署您的应用程序的密钥库中生成。对于 Xamarin 调试版本,它使用其调试密钥库。你的命令是keytool -list -v -keystore /Users/[USERNAME]/.local/share/Xamarin/Mono\ for\ Android/debug.keystore -alias androiddebugkey -storepass android -keypass android,其中 [USERNAME] 是你的 mac 用户。
                        • 我必须在路径名周围加上“引号”。否则它会与路径中的空格混淆。
                        • Suppperrrr 我尝试了 100 篇文章但无法找到。非常感谢
                        猜你喜欢
                        • 2013-02-25
                        • 2019-10-12
                        • 2011-06-22
                        • 1970-01-01
                        • 2016-11-30
                        • 2018-06-04
                        • 1970-01-01
                        • 2020-03-01
                        相关资源
                        最近更新 更多