keytoolエラー:java.io.IoException:不正なAVA形式


179

私はAndroid開発に不慣れです。アプリケーションに署名しようとすると、次のエラーが発生します。誰もがこの問題について私を助けることができますか?

keytool error :java.io.IoException:Incorrect AVA format

フォーラムでいくつかの解決策を見つけました。たとえば、実行する必要がありますdebug.keystoreが、成功しませんでした。


このリンクを参照してください 。groups.google.com / forum
?

そして、この:mortalpowers.com/news/...
tom_mai78101

回答:


476

おそらく、名前、組織、またはその他の場所のフィールドに不正な文字(、(コンマ)など)を入力した可能性があります。

もちろん、本当に必要な場合は\記号でエスケープできます


21
参考までに、フィールドにカンマが本当に必要な場合は、先頭にバックスラッシュを付けてエスケープできます(例:Acme \、Inc)。docs.oracle.com/javase/6/docs/technotes/tools/solaris/…を参照してください。これは、Eclipse IDEの署名ダイアログでも機能します。
Yojimbo 2013

1
私にとっては、「組織」フィールドの+記号でした。バックスラッシュを前に付けるとうまくいきました、ヨージモに感謝します!
チャドシュルツ2013

4
うわー、これを理解するのに何日も費やしていたかもしれませんが、それは私の組織名のコンマでした(私は "...、LLC"を使用しました)。トンありがとう。
akousmata 2013

+1これは受け入れられた答えであるはずです。また、ユーザーが(カンマ)(、)を入力したとき、またはエクスポートウィザードがユーザーに通知する必要のある特殊文字、またはこれが許可されていない特定のテキストボックスをポイントしているときにチェックを行う必要があります。変更してください。
Zubair Ahmed

1
私にとっての問題は国コードでした。「+1」を入れたところ、明らかに+が例外を発生させていました。
Donato 2016

50

署名付きの.apkファイルをEclipse ADTでエクスポートしようとしたときにエラーが発生しました。エラーはあなたのエラーと同じでした。私の場合、国コードの前に+記号を使用しました。この名前から+記号を削除することで問題が修正され、署名済みの.apkファイルを完全にエクスポートできるようになりました。また、このエラーは、コンマ、スラッシュ、セミコロン、引用符を使用すると発生する可能性があります。


ありがとう。「+」記号も使用しました。)
DmitryKanunnikoff

ありがとう。これで、国コードで使用した私の問題が解決しました
Khizar Hayat

20

apkのエクスポート中に特殊文字を使用しようとしました。apkの作成中に表示されるフィールドでこれらの特殊文字を使用することはできません。特殊文字セットには以下が含まれます。

  • コンマ(、)
  • 加算記号(+)
  • クォーテーションマーク (")
  • バックスラッシュ( "\")
  • 山かっこ(<および>)
  • セミコロン(;)

7

国コードを変更してこれらの例外を解決しました:

+91India


このフィールドでは、
ISO

6

識別名オプションをまったく設定しなかったときにこのエラーが発生しました。これは、オプションを有効な形式の文字列に設定することで修正されました。

このコマンドはAVA形式の例外で失敗しました:(読みやすくするために改行が追加されています)

C:\Program Files\Java\jdk1.6.0_45\jre\bin>keytool 
-genkey -v -dname PatrickTaylor -validity 10000 
-keystore C:\drops\patrickkeystore 

このコマンドは正常に完了しました:

C:\Program Files\Java\jdk1.6.0_45\jre\bin>keytool 
-genkey -v -dname PatrickTaylor -validity 10000 
-keystore C:\drops\patrickkeystore 
-dname "cn=Patrick Taylor, ou=engineering, o=company, c=US"

4

これは、「名前、組織、またはその他の場所のフィールドに不正な文字(、(コンマ)など)を入力した可能性があります。私は州または州にカンマを入れました。この回答を規則で回答としてマークしてください。+91の+は特殊文字です。


私にとって、エラーは会社名とllcの間のカンマによって引き起こされました。(キングスリーのシットホールありがとうございます)。
tmr 2014年

1

特殊文字/すべての良い答えをエスケープすることが問題になる可能性があります。実際の「keytool」コマンドラインを共有しなかったため、正確な答えを出すのが難しくなりました。pub / privキーペア( "-genkeypair" param)を生成しようとしている場合、1つの問題は、証明書のサブジェクト識別名( " -dname " arg)が正しいX.500 AVAで指定されていないことです。 ( " A ttribute- V alue- A ssertion")形式。たとえば、サブジェクトの共通名(CN)の前にある「CN =」を省略します。Paramは次のようになります。

keytool ... -dname="CN=SomeCertSubject" ...

この識別名のparamでは、「CN」(「共通名」)「であるttribute」、「SomeCertSubjectは」「であるVの ALUE」。


0

「無効な文字」とグーグルすることはできません。代わりに、「インコレットAVA形式」と表示されます。非英数字、アクセント、奇妙な文字は削除されます。


正解を教えてください!
アマヌエルネガ2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.