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

修改applicationId后用新JKS签名Release APK失败,旧JKS可行,求助

解决修改applicationId后新JKS签名失败的问题

尝试通过修改build.gradle中的applicationId基于现有代码创建新应用,按官方步骤生成新JKS文件后,签名构建时失败,报错:

Execution failed for task ':app:packageRelease'.
A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
com.android.ide.common.signing.KeytoolException: Failed to read key new_key from store "C:\Users\Dev\Downloads\test.jks": Invalid keystore format

使用旧应用的JKS签名则成功,疑问为何AS要求用旧密钥,已尝试清缓存、重建项目无效。

核心原因

问题和applicationId修改没有关联——Android Studio不会强制要求使用旧应用的密钥。旧密钥能成功签名,只是因为它本身格式合法;新JKS签名失败的本质是你生成的新JKS文件格式无效,可能是生成过程中版本不兼容、操作失误导致文件损坏。

解决方案

1. 用Android Studio内置工具重新生成JKS

避免命令行可能的版本冲突,直接通过AS生成可靠的密钥库:

  • 点击顶部菜单栏 Build > Generate Signed Bundle/APK
  • 选择APK后点击Next,再点击Create new...
  • 按向导填写密钥库路径、密码、别名及别名密码,确保所有信息输入准确
  • 生成完成后,重新选择这个新密钥库进行签名构建

2. 确保JDK版本一致

如果用命令行keytool生成JKS,必须使用Android Studio配置的JDK:

  • 打开File > Project Structure > SDK Location,查看JDK Location路径
  • 用该路径下的keytool.exe重新生成密钥库,避免不同JDK版本的格式不兼容问题

3. 验证新JKS文件有效性

用keytool命令检查文件是否正常可读:

keytool -list -v -keystore C:\Users\Dev\Downloads\test.jks

输入密钥库密码后,如果能正常显示密钥别名、创建时间等信息,说明文件有效;若报错,说明文件损坏,需要重新生成。

4. 确认build.gradle签名配置正确

检查app/build.gradle中的签名配置是否准确指向新JKS:

signingConfigs {
    release {
        storeFile file("C:\\Users\\Dev\\Downloads\\test.jks")
        storePassword "你的密钥库密码"
        keyAlias "new_key"
        keyPassword "你的别名密码"
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
        // 其他构建配置
    }
}

注意Windows路径需要用双反斜杠\\或者正斜杠/转义,确保所有密码和别名与生成时完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:15:45