【问题标题】:Cannot find Keystore Entry. But I know it's there找不到密钥库条目。但我知道它在那里
【发布时间】:2017-01-17 16:34:01
【问题描述】:

Windows 10 上的 Android Studio

无法加载密钥库:无法识别的密钥库条目

我有一个已编译和签名的现有应用。我已经创建了它的新版本。应用程序的唯一 ID 相同(com.name.appname)。我想用现有密钥签署新版本。 我有钥匙。我知道密码。我知道别名是正确的。我得到的只是: 无法加载密钥库:无法识别的密钥库条目

更具体地说:错误:任务':app:packageRelease'的执行失败。

com.android.ide.common.signing.KeytoolException:无法从存储“[path]\publishKey”读取密钥 [name]:无法识别的密钥库条目

我在这里看到的所有答案都类似于“使用命令行实用程序查找密钥别名”,bla bla bla ...

我知道这些东西是正确的。它只是不让我使用它。

我在这里缺少什么?我需要编辑什么东西让它知道我确实想使用那个签名吗?

【问题讨论】:

  • 生成apk的时候可以浏览别名吗?
  • 您会认为单击上面带有“...”的小按钮会弹出一个浏览对话框。但不是。即使在那里它也给了我同样的错误。
  • 如果您输入了错误的密钥库密码或密钥库被篡改,则会发生这种情况
  • 确保您使用的是正确的密钥库文件
  • 否 - 密码正确。它是正确的密钥库文件。另外,我可以使用 KeyStore 查看器打开文件。我可以看到我的条目。我可以编辑它们。事实上,我可以在一台机器上使用该文件。当我在另一台机器上使用确切的文件时,这是一个问题。我正在尝试将我的东西转移到一个新的开发环境中。我不想在这个过程中丢失我所有的钥匙

标签: android gradle keystore


【解决方案1】:

似乎不知何故,密钥库文件已损坏。也许后来的条目之一做到了。我不知道。 但是我解决这个问题的方法是使用 KeyStore Explorer,我能够从那里保存文件,并删除最后几个条目。

然后我能够找到别名并正常签署我的应用程序。来自旧机器和新机器。

只是把它留在这里,希望其他人会发现它有用。

【讨论】:

    【解决方案2】:

    您可以运行此命令来列出您的密钥库文件的内容:

    keytool -list -keystore .keystore

    如果要查找特定别名,也可以在命令中指定:

    keytool -list -keystore .keystore -alias foo

    如果找不到别名,则会显示异常:

    keytool 错误:java.lang.Exception:别名不存在

    // 否则,您将在命令提示符中使用以下命令:

    C:\Program Files\Android\Android Studio\jre\bin>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.android\debug.keystore | C:\OpenSSL-Win32\bin\openssl.exe sha1 -binary | C:\OpenSSL-Win32\bin\openssl.exe base64

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2015-08-27
      • 1970-01-01
      • 2013-07-29
      • 2021-01-06
      • 1970-01-01
      相关资源
      最近更新 更多