在密钥库中找不到具有别名的密钥

No key with alias found in keystore

我们的 android 项目包括 移动应用和穿戴应用 (穿戴应用正在开发中),我们正在尝试发布移动应用。当我们尝试生成签名的 apk 时,我们收到以下消息:

Error:Execution failed for task ':wear:packageRelease'.
> com.android.ide.common.signing.KeytoolException: Failed to read key
toyanathpatro from store "/home/adventure/toyanath_patro_key/toyanath_patro_key":
No key with alias 'toyanathpatro' found in keystore /home/adventure/toyanath_patro_key/toyanath_patro_key

正如它所说,:wear:packageRelease 任务失败,实际上我们在选择签署 apk 时只选择手机。

谁能指出我的错误?提前致谢。

在您的 build.gradle 中,您定义了一个签名配置,它指向一个不在您的代码库中的密钥库。

与此类似。

android {
    ...
    buildTypes {
        release {
            signingConfig signingConfigs.staging
            ...
        }
    }
    signingConfigs {
        defaultSignature {
            keyAlias 'default'
            keyPassword 'password'
            storeFile file('default-keystore.jks')
            storePassword 'password'
        }
    }
}

问题似乎出在密钥别名拼写错误 在我的例子中,别名应该是 toyanathpatro ,我错误地尝试使用 toyanathpatro 。所以最好的建议是:

  1. 不要在密钥别名中使用space或不可见字符。尽可能

  2. 键别名可编辑字段右侧有一个小选择按钮(3个横点)。使用该按钮查找驻留在该签名文件中的别名。

在我的例子中 android studio 默认创建别名 'key0',它是文件中唯一的别名。 我的快速解决方案:使用您想要的别名从 android studio 创建新的密钥文件。将新创建的文件与 "Generated Signed APK" 一起使用。如果一切顺利,您可以 运行 应用在 "Project Structure".

中设置属性

点击Build>Edit library and dependencies

然后单击签名选项卡中的加号按钮。密钥别名与生成签名的 apk 构建时的别名密钥相同。

我有一个无法摆脱的粘性配置。即使我已经更改了签名配置 window 中的别名,它仍然给我错误 "Could not find alias" 我第一次输入的原始(错误)别名。我手动搜索并在路径上找到了一个文件...

[项目]/android/app/build/intermediates/signing_config/release/out/signing-config.json

...其中包含我第一次输入的原始(错误)别名。再次删除文件和 built/signed 应用程序。希望对大家有帮助。

构建 -> 重建项目

似乎缓存了旧的键名。

不要使用大写键作为密码。它对我有用。

生成密钥库后-

keytool -genkeypair -v -keystore my-key.keystore -alias my-alias -keyalg RSA - 
keysize 2048 -validity 10000

您应该在 gradle.properties 中使用准确的别名:-

MYAPP_UPLOAD_STORE_FILE=my-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-alias <------this name
MYAPP_UPLOAD_STORE_PASSWORD=***
MYAPP_UPLOAD_KEY_PASSWORD=***

我最初使用 key0 进行构建。它因 'Errors while building APK' 而失败。下次,我将其更改为 'key1' 以工作并且它起作用了。

用于生成 .jks 密钥,

keytool -genkey -alias myKeyStore -keyalg RSA -keystore "C:\apk\fastmoneyv1.jks"

如果您在创建密钥时使用此代码

" keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

您必须从 key.properties

更新“keyAlias”属性

来自:keyAlias=key

至:keyAlias=上传

在我的例子中,我已经生成了 keystore 文件。我正在更新我的应用程序,当我生成签名的 apk 时,我正在创建新的 key_alias。相反,我从我的密钥库文件中选择了现有的密钥别名,它已被 解决 :)

如果您之前有 .Jks 文件,那么您可以通过键入此命令来获取别名

keytool -v -list -keystore .jks

keytool -v -list -keystore .keystore

然后您将必须输入密码,您将通过该别名获得别名,您可以轻松创建签名的发布文件。

我的问题是我丢失了我的钥匙,当我联系 google 制作新钥匙时,我制作了一个新的,别名我不知道所以要在你的根 android 项目 cd app 并粘贴此命令 keytool -v -list -keystore yourkeystore.jks 不要忘记用您的密钥替换 yourkeystore.jks 您将获得输出我们只需要 别名 复制此别名并将其粘贴到您的 key.properties 文件中,如下所示

storePassword=YourPassword
keyPassword=YourPassword
keyAlias=AliasNameCopiedFromLastStep
storeFile=KeyStorePath