Erreur keytool: java.io.IoException: format AVA incorrect


179

Je suis nouveau dans le développement Android; quand j'essaye de signer l'application, j'ai l'erreur suivante. Quelqu'un peut-il m'aider sur ce problème?

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

J'ai trouvé une solution sur les forums, par exemple, je dois exécuter le debug.keystoremais je n'ai pas réussi.



Réponses:


476

Vous avez probablement entré un caractère illégal (quelque chose comme, (virgule)) dans un champ pour Nom, Organisation ou ailleurs.

Bien sûr, si vous voulez vraiment un caractère peut être échappé avec \ sign


21
Juste pour info, si vous voulez vraiment une virgule dans un champ, vous pouvez l'échapper avec une barre oblique inverse, par exemple Acme \, Inc. Voir docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Cela fonctionne également dans la boîte de dialogue de signature de l'EDI Eclipse.
Yojimbo

1
Pour moi, c'était un signe + dans le champ "Organisation". La prépension avec une barre oblique inverse a fait l'affaire, merci Yojibmo!
Chad Schultz

4
Wow, j'aurais pu passer des jours à essayer de comprendre cela, et c'était une virgule dans le nom de mon organisation (j'ai utilisé "..., LLC"). Merci beaucoup.
akousmata

+1 Cela devrait être la réponse acceptée. Il devrait également y avoir une vérification lorsque l'utilisateur a entré (virgule) (,) ou un caractère spécial, l'assistant d'exportation doit informer l'utilisateur ou pointer vers cette zone de texte particulière que cela ne devrait pas permettre, veuillez le modifier.
Zubair Ahmed

1
Le problème pour moi était le code du pays. J'ai mis "+1" et apparemment le + soulevait l'exception.
Donato

50

J'ai rencontré une erreur en essayant d'exporter un fichier .apk signé avec Eclipse ADT. L'erreur était la même que votre erreur. Dans mon cas, j'ai utilisé un signe + avant le code du pays. En supprimant le signe + de ce nom, le problème a été résolu et m'a permis d'exporter entièrement mon fichier .apk signé. En outre, cette erreur peut se produire lorsque vous utilisez une virgule, une barre oblique, un point-virgule, une citation.


Merci. J'ai aussi utilisé le signe «+». )
DmitryKanunnikoff

Merci. Cela a résolu mon problème que j'ai utilisé + dans le code de pays
Khizar Hayat

20

Vous avez essayé d'utiliser des caractères spéciaux lors de l'exportation d'apk. Vous ne pouvez pas utiliser ces caractères spéciaux dans les champs affichés lors de la création de l'apk. Le jeu de caractères spéciaux comprend:

  • Virgules (,)
  • Symbole d'addition (+)
  • Guillemet (")
  • Barre oblique inverse ("\")
  • Crochets angulaires (<et>)
  • Point-virgule (;)


6

Je suis tombé sur cette erreur lorsque je n'ai pas du tout défini l'option de nom distinctif. Cela a été corrigé en définissant l'option sur une chaîne correctement formatée.

cette commande a échoué avec l'exception de format AVA: (sauts de ligne ajoutés pour la lisibilité)

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

cette commande s'est terminée avec succès:

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

ce "Vous avez probablement entré un caractère illégal (quelque chose comme, (virgule)) dans un champ pour Nom, Organisation ou ailleurs." a fonctionné pour moi. J'avais une virgule sur l'état ou la province. veuillez marquer cette réponse par règle comme réponse; comme + dans +91 est un caractère spécial.


pour moi, l'erreur a été causée par une virgule entre le nom de la société et llc. (merci kingsley sithole).
tmr

1

Caractères spéciaux / échappant à toutes les bonnes réponses / pourrait être le problème; vous n'avez pas partagé votre ligne de commande "keytool" si difficile de donner une réponse précise. Si vous essayez de générer une paire de clés pub / priv (paramètre "-genkeypair"), un problème serait que le nom distinctif du sujet du certificat (" -dname " arg) n'a pas été spécifié dans le bon X.500 AVA (" Un ttribute- V aleur- A ssertion"). Par exemple, en omettant le "CN =" devant le nom commun du sujet (CN). Param devrait ressembler à quelque chose comme ceci:

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

Dans ce paramètre de nom distinctif, " CN " ("Common Name") est le " A ttribute", " SomeCertSubject " est la " V alue".


0

Google ne peut pas dire "Caractère non valide". Au lieu de cela, ils disent "format Incorret AVA" Supprimez tous les caractères non alphanumériques, pas d'accents et pas de lettres étranges.


veuillez donner les bonnes réponses!
Amanuel Nega
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.