0

3か月前にアプリのリリースキーを取得しています。今、私は自分のコンピューターをフォーマットし、リリースキーでアプリに署名したときに、次のエラーが発生しました:java.lang.RunTimeException:keystore load:invalidkeystoreformat。

このエラーをどのように解決する必要がありますか?

コマンドは次のとおりです。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) 

ここに画像の説明を入力してください

4

1 に答える 1

1

キーストアは、アプリの署名に使用される秘密暗号化キーを保持します-コマンドを再実行すると、まったく異なるキーが生成されます(パスワードは、それを保持するファイルを保護するだけです-暗号化キー自体とは直接の関係はありません)-回復できませんキーストアファイルを紛失した場合は、/rebuildします。

それを失った場合、ユーザーは新しいバージョンをインストールする前に既存のアプリを完全にアンインストールする必要があります-そして、アンインストールするとアプリに保存されているデータが失われます(これを回避する方法はありません、Androidのセキュリティ機能です)

さらに悪いことに、Android Playストアでは、古いバージョンと同じキーを使用してエンコードされていないため、新しいバージョンをアップロードできません。新しいバージョンを別のパッケージ名でリリースする必要があります。つまり、既存のユーザーは自動的にアップグレードすることさえできません(新しいバージョンを見つける必要があります)-そして、アップグレードする必要があることをユーザーに伝える方法さえありません(古いアプリの新しいバージョンをアップロードすることはできません...)

バックアップでそのキーストアファイルを見つけるか、ディスクからデータを回復しようとする必要があります-うまくいけば「クイック」形式を実行しました-その場合、優れたデータ回復サービスは、OSが終了していなければそれを取り戻すことができるかもしれません-まだ書いています。

幸運を!

于 2012-09-06T02:45:09.827 に答える