APK签名错误:无法从密钥库中读取密钥

我正在intellij和gradle下开发Android应用程序。 并使用以下方式生成密钥库文件:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 

然后在build.gradle中使用keystore文件:

 signingConfigs { robert { storePassword 'robert' storeFile file('/Users/bournewang/Documents/Project/android.keystore') keyPassword 'robert' keyAlias 'mike' } } 

当最后尝试生成签名的apk文件时:./gradlew assembleRelease

它给出了错误:

执行失败的任务':Myexample:packageRelease'。

无法从密钥库中读取密钥

首先检查您的密钥库文件,例如您使用名称my-release-key.keystore创build文件。 如果它的正确和真正存在的文件夹Users/bournewang/Documents/Project检查别名,在你的例子中它是-alias alias_name ,但在你指定的别名mike

为了找出什么是错的,你可以使用gradle的signingReport命令。

在mac上:

 ./gradlew signingReport 

在Windows上:

 gradle signingReport 

您的密钥库文件很可能不存在您的密钥别名。

这个答案应该解决你的签名问题;)

删除double-quotes解决了我的问题,现在它的:

 DEBUG_STORE_PASSWORD=androiddebug DEBUG_KEY_ALIAS=androiddebug DEBUG_KEY_PASSWORD=androiddebug 

在我的情况下,当从其他来源复制文本时,它以某种方式包括剪贴板input结束处的空间。 这样的关键密码在最后有一个空间。

它可以是任何一个参数,而不仅仅是文件名或别名 – 对我来说,它是密钥密码。