2017-07-27 7 views
10

Android Studioで既存のキーストアファイルを開くことができないか、コマンドラインからjarsignerを使用できません。AndroidStudioでキーストアを開くことができない - 「冗長な長さのバイトが見つかりました」

両方の場合において、エラーメッセージがある:

java.security.cert.CertificateException:初期化することができない、にjava.io.IOException:DerInputStream.getLength():冗長長さバイトが

を発見

参照のスクリーンショット:
Android Studio

どうやらこれはJDK8_131で固定する必要がありますが、私のために動作しません問題でした。 (私たちはすべてOSXを使用しています)

私はtravisでも同じエラーが発生します。 (以下、 "更新" を参照してください。)

私は、彼らが.keystore.pkc12ファイルを変換しますが、我々はすでに.keystore


UPDATE

を使用している私がいることを見つけ、別のSOの質問(Signing android app throws IOException: Redundant length bytes found)を見つけまた、最新のJDKをダウンロードする新しいディストリビューションtrustyにビルドを移動しているため、ビルドは失敗し始めました。一方、preciseはデフォルトでJDK7を使用していました。 dist: precise.travis.ymlファイルの先頭に追加することは今のところ機能しますが、これは永久的な解決策ではありません。

問題を解決するJDKアップデートのみ、またはキーストアから冗長長さのバイトを削除する方法がありますか?

+0

よく分かりませんが、https://bugs.openjdk.java.net/browse/JDK-8179191というヒットしているようです。それが...の場合は、java-9でのみ修正されています。何が起こるか見てみるためにjava-9で試すことができますか? – Eugene

+0

しかし、我々はopenJDKを使用していませんが、oracleのJDK – Altoyyr

+0

はどちらも同じコードに近いです。 oracle jdk-9に対するテストでは – Eugene

答えて

3

私も同じエラーが発生しました。以下の解決策1に従って解決しました。解決策1を試して解決することができます。他のソリューションに従ってください。7

8への解決策2

からJDKを更新

ソリューション1

あなたのキーストアファイルの内容をリストするには、次のコマンドを実行することができます:

keytool -list -keystore .keystore 

特定のエイリアスを検索する場合は、 Y、それをコマンドで:私は追加する必要がありましたすべての詳細を取得するために

keytool error: java.lang.Exception: Alias does not exist 

ソリューション3

:別名が見つからない場合、それは例外が表示されます

keytool -list -keystore .keystore -alias foo 

-vオプション

keytool -v -list -keystore <FileName>.keystore 

それは確かにあなたがエラーを解決するのに役立ちますかあなたが得ることができますキーストアの内容を取得し、アプリの新しいキーストアを生成することができます。

+0

sugansoft私はあなたの答えに同意します...素晴らしい私は長い間探していました。しかし、単にその固定され、私の時間を節約.... – gowtham

+0

申し訳ありませんが、これは動作しません。まず、JDK8に更新したときに問題が発生しました。 2番目の 'keytool'はAndroid Studioによって呼び出されるツールです。だから 'keytool'を使うときには全く同じエラーが出ます。 – Altoyyr

関連する問題