无法从商店&#34; ... / keystore.jks&#34;中读取密钥<key>:密钥库被篡改,或密码不正确

时间:2017-07-17 16:52:05

标签: java android gradle

我正在尝试使用现有的密钥库文件构建已签名的APK,以便我可以更新Play商店中已有的应用,但gradle似乎无法识别密钥文件的密码。

通常我们是通过Bitrise构建我们的应用程序,但它最近遇到了问题,所以我一直在尝试使用./gradlew assembleRelease和Android Studio(使用相同的命令创建签名的APK)来构建它)。

一切似乎都很好,直到gradle进入:app:packageRelease步骤。

完整错误是:com.android.ide.common.signing.KeytoolException: Failed to read key <alias> from store "/Users/admin/Documents/projects/<app>/android/app/<keyfile>.jks": Keystore was tampered with, or password was incorrect

我很确定密钥存储文件的密码存在问题,因为当我尝试keytool -list -keystore <app>.jks时,系统会提示我输入密码,然后我会输入密码。类似的错误:keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

这是我的build.gradle

        signingConfigs {
            release {
                storeFile file('<app>.jks')
                storePassword '<store_password>'
                keyAlias '<alias>'
                keyPassword '<key_password>'
            }
        }
    }
    buildTypes {
        ...
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }

为了确保它是密钥库文件问题,我还生成了一个新的密钥库文件,但是使用扩展名.keystore,并且应用程序构建得很好。

我一直在寻找这一问题的一整天,没有运气,不幸的是,没有一个类似的问题有帮助。如果有人能指出我正确的方向,我将非常感激。

感谢。

1 个答案:

答案 0 :(得分:1)

对于遇到类似错误的人:

确保在文件 key.properties中输入密码后没有空格。我在构建自己的设备时遇到了麻烦,因为那里有一些空格(我认为是从自动格式化之类的东西来的)。

我希望这可以解决您的问题。