Android 如何解决密钥库加载:无效的密钥库formtat?

Android 如何解决密钥库加载:无效的密钥库formtat?,android,keystore,jarsigner,Android,Keystore,Jarsigner,我在三个月前收到了我的应用程序的releasekey。现在我格式化了我的计算机,当我用我的releasekey为我的应用程序签名时,我得到了一个错误:java.lang.RunTimeException:keystore加载:无效的keystore格式 我应该如何解决这个错误 命令是:jarsigner-verbose-keystore“D:\releasekey.keystore”“D:\myApp.apk”releasekey 我使用的是较旧的密钥库(第一个密钥库),但出现了上面提到的错误

我在三个月前收到了我的应用程序的releasekey。现在我格式化了我的计算机,当我用我的releasekey为我的应用程序签名时,我得到了一个错误:java.lang.RunTimeException:keystore加载:无效的keystore格式

我应该如何解决这个错误

命令是:jarsigner-verbose-keystore“D:\releasekey.keystore”“D:\myApp.apk”releasekey

我使用的是较旧的密钥库(第一个密钥库),但出现了上面提到的错误

我试着得到这个:

java.io.IOException: java.io.IOException: invalid keystore format 
at sun.security.provider.javaKeyStore.engineLoad(JavaKeyStore.java:650) 
at sun.security.provider.javaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) 
at java.security.KeyStrore.load(KeyStore.java:1214) 
at sun.security.tools.KeyTool.doCommands(KeyTool.java:789) 
at sun.security.tools.KeyTool.run(KeyTool.java:340) 
at sun.security.tools.KeyTool.main(KeyTool.java:333) 

密钥库保存用于签署应用程序的私有加密密钥-重新运行该命令将生成完全不同的密钥(密码仅保护保存它的文件-它与加密密钥本身没有直接关系)-如果丢失密钥库文件,则无法恢复/重建密钥

如果你丢失了它,那么你的用户在安装新版本之前必须完全卸载现有的应用程序,并且在卸载应用程序时,他们会丢失保存在应用程序中的所有数据(这是无法避免的,这是android中的安全功能)

更糟糕的是,android play store不允许你上传你的新版本,因为它们没有使用与旧版本相同的密钥进行编码-你需要以不同的软件包名称发布新版本-这意味着你的现有用户甚至无法自动升级(他们必须找到新版本)-你甚至无法告诉他们需要升级(你无法上传旧应用的新版本…)

您必须在备份中找到密钥库文件,或者尝试从磁盘恢复数据-希望您采用了“快速”格式-在这种情况下,如果您的操作系统尚未过度写入数据,一个好的数据恢复服务可能能够将其恢复


祝你好运

您好,我恢复了我的旧releasekey,但我不能使用jarsiner,因为上面提到了错误(密钥库加载)哦,那么可能是:“损坏的trusted.certs”您好,我找不到这个存档,我在“C:\Users\weldson\AppData\LocalLow\Sun\Java\Deployment\security”中,只有两个存档(baseline.timestamp,baseline.versions)=/它可能不在您的个人应用程序数据中-它可能在主程序安装目录中-搜索您的整个计算机以查找名为“trusted.certs”的文件-确保它位于/Java/文件夹下-并重命名它而不是删除它(以防您需要将其放回)。我确实搜索了所有计算机,但什么也没有。我没有这个档案。