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

持有.keystore及密码缺失JKS 能否生成合法签名APK

报错根因澄清

你遇到的报错核心原因是打包配置中填写的密钥库文件路径不存在,和缺少JKS文件无关:

Execution failed for task ':app:validateSigningRelease'.
Keystore file '<location_here>' not found for signing config 'externalOverride'.

.keystore与.jks都属于Java密钥库的标准存储格式,二者完全可以通用,不需要额外生成新的JKS文件,只需修正配置即可解决问题。

验证现有密钥库可用性

首先确认你手上的.keystore文件未损坏,终端执行如下命令:
keytool -list -v -keystore 你的.keystore文件本地路径
输入keystore密码后如果能正常输出别名、证书有效期等信息,说明文件本身有效,你手上的.dms文件在此场景下无需使用。

修正打包签名配置

按你使用的打包方式选择对应修正方案:

  • Android Studio图形界面打包:
    依次点击Build > Generate Signed Bundle / APK,在签名配置步骤点击Key store path右侧的「Choose existing」按钮,手动选中本地的.keystore文件,再依次输入keystore密码、alias、alias密码,正常走打包流程即可,无需修改文件后缀为.jks。
  • Gradle命令行打包:
    两种配置方式二选一即可:
    1. 在项目根目录的local.properties文件中添加正确配置:
    store.file=你的.keystore文件本地绝对路径
    store.password=keystore密码
    key.alias=签名alias
    key.password=alias对应密码
    
    再执行打包命令./gradlew assembleRelease即可。
    2. 执行打包命令时直接传入签名参数:
    ./gradlew assembleRelease -Pandroid.injected.signing.store.file=你的.keystore文件绝对路径 -Pandroid.injected.signing.store.password=keystore密码 -Pandroid.injected.signing.key.alias=签名alias -Pandroid.injected.signing.key.password=alias对应密码

如果配置路径正确仍报错,检查路径是否包含中文、空格、特殊字符,Windows系统需注意路径分隔符是否转义正确,建议将.keystore文件放到项目根目录使用相对路径配置,降低出错概率。

可选:.keystore转.jks格式(非必须)

如果你确实需要JKS格式的密钥库,可直接用现有文件转换,无需重新生成,转换后原有签名信息完全一致:
keytool -importkeystore -srckeystore 原文件.keystore -srcstoretype JKS -destkeystore 输出文件.jks -deststoretype JKS
按提示输入对应密码即可完成转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:36:00