Android 安卓发布密钥库问题:“;密钥库被篡改,或密码不正确;

Android 安卓发布密钥库问题:“;密钥库被篡改,或密码不正确;,android,jar-signing,Android,Jar Signing,几个月前,我使用以下命令生成了我的android发布密钥库: keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000 jarsigner -verbose -keystore my-release-key.keystore my.apk myalias 我为密钥库输入了一个密码,并将其记录下来。在最后一步中,当需要为证书输入密码时

几个月前,我使用以下命令生成了我的android发布密钥库:

keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -keystore my-release-key.keystore my.apk myalias
我为密钥库输入了一个密码,并将其记录下来。在最后一步中,当需要为证书输入密码时,我按enter键使用与密钥库相同的密码(因此整个过程中我只需记住一个密码)

生成此密钥库后,我使用以下命令签署了apk以供发布:

keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -keystore my-release-key.keystore my.apk myalias
我输入密码的地方(没问题)

现在我必须在市场上推送我的apk更新,当我尝试使用上面的命令签署新的apk时,我得到一个“密钥库被篡改,或者密码不正确”

我很困惑,我回到我的密钥库备份,我得到了同样的问题。我确信密码是正确的。请注意,我根本没有在流程中使用Eclipse(我是从命令行签名的)


这里有什么问题?Heeelpp

该消息表示密码错误。看起来您没有记住用于密钥存储的密码


强烈建议在创建密钥和密码时,将副本保存在非常安全的地方,防止遗忘、火灾、驱动器故障等,因为后果可能非常严重(无法在市场上更新应用程序)。

此错误发生在我身上,因为我的公司名称中有逗号,例如“Company,Inc.” 去掉逗号,一切正常。
希望能有所帮助。

隐式的keyalg、digestalg和/或sigalg在不同版本的Java和eclipse之间发生了变化

使用命令行并尝试几个不同的组合。在用Java5.0创建密钥,但将系统升级到Java6之后,这对我来说是有效的
jarsigner-verbose-keystore-sigalg MD5withRSA-digestalg SHA1
与社区分享我的经验

JDK1.7 android的build.gradle

android {
    compileSdkVersion 18
    buildToolsVersion "17.0.0"

    signingConfigs {
        release {
            storeFile file("../my-release.keystore")
            storePassword "$MakeMyDay!"
            keyAlias "my-release"
            keyPassword "$MakeMyDay!"
        }
    }
:
当我升级assembleRelease时,我遇到了可怕的“篡改或密码不正确”错误

决议:


使用更简单的密码,如abcdef。不确定是否有特殊字符,如$和!得到支持

你是如何解决你的问题的?我也有同样的问题——我的密码包含特殊字符,看起来像Android工具。相同的密码在Android Studio中工作(自动转义?),但不在命令行上。我通过更改密码并确保它不包含字符&$%@来修复此问题。