You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建签名APK时提示Keystore被篡改或密码错误该如何解决

签名APK构建Keystore报错解决方案

以下是按优先级排序的排查步骤:

  1. 首先校验Keystore文件完整性与密码正确性
    执行官方keytool校验命令:
    keytool -list -keystore 你的keystore文件绝对路径
    按提示输入密码,如果该命令正常输出密钥库的别名、创建时间、类型等信息,说明你的Keystore文件未被篡改、密码完全正确,问题出在构建流程的配置上;如果该命令也抛出相同报错,执行下方文件与密码类排查:
  • 密码输入时禁止使用粘贴操作,手动逐位输入密码,避免IDE输入框、系统剪切板带入首尾不可见的空白字符
  • 确认密码没有包含非ASCII字符(如中文、特殊符号、全角字符),不同系统编码环境下非ASCII字符会被转码为不同内容,导致密码校验失败
  • 检查Keystore文件是否被文本编辑工具打开、保存过,或者跨系统传输时使用了文本传输模式,二进制格式的Keystore文件被转码后会直接损坏,你可以从创建Keystore时的原始备份路径重新复制文件使用
  • 针对你测试的无密码Keystore报错问题:旧版本Android Gradle Plugin不支持无密码的PKCS12格式密钥库,建议创建密钥库时设置至少6位的纯英文数字组合密码
  1. 配置类问题排查(keytool校验通过但构建仍报错)
  • 在build.gradle签名配置中明确指定Keystore格式,避免不同版本工具的默认格式不匹配:
android {
    signingConfigs {
        release {
            storeFile file("你的keystore文件路径")
            storePassword "你的密钥库密码"
            keyAlias "你的密钥别名"
            keyPassword "你的密钥密码"
            // 根据你创建Keystore时选择的格式填写,Android Studio 4.2+默认生成PKCS12,旧版本默认JKS
            storeType "PKCS12"
        }
    }
}
  • 对齐JDK版本:确认当前项目使用的JDK版本和你创建Keystore时使用的JDK版本一致,高版本JDK生成的PKCS12格式密钥库无法被低版本JDK正常读取。你可以在Android Studio的File > Project Structure > SDK Location > JDK location中查看和修改项目使用的JDK版本
  • 清理缓存后重试:
    执行项目清理命令:./gradlew clean(Windows系统执行gradlew clean)
    再选择Android Studio菜单栏File > Invalidate Caches... 清理IDE缓存后重启再构建
  • 检查全局Gradle配置是否覆盖了项目签名配置:查看用户目录下的.gradle/gradle.properties文件,是否配置了全局的签名参数,全局配置优先级高于项目内配置,会导致你的项目配置不生效

内容的提问来源于stack exchange,提问作者Denesh。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:45:02