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.

Pallavi
la source

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

règle
la source
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.

Ratna Halder
la source
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 (;)
surhidamatya
la source
7

J'ai résolu ces exceptions en changeant le code du pays:

+91 à India

Steve
la source
Pour ce champ, vous devez utiliser le code de pays iso 3166-1 , dans votre cas "IN"
PassKit
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"
Patrick
la source
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.

kingsley sithole
la source
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".

user1172173
la source
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.

Josh
la source
veuillez donner les bonnes réponses!
Amanuel Nega