error keytool: java.io.IoException: formato AVA incorrecto

179

Soy nuevo en el desarrollo de Android; Cuando he estado intentando firmar la aplicación, aparece el siguiente error. ¿Alguien puede ayudarme en este tema?

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

He encontrado alguna solución en los foros, por ejemplo, necesito ejecutar el debug.keystorepero no tuve éxito.

pallavi
fuente

Respuestas:

476

Probablemente ingresó un carácter ilegal (algo así como (coma)) en un campo para Nombre, Organización o en otro lugar.

Por supuesto, si realmente quieres un poco de carácter se puede escapar con \ sign

regla
fuente
21
Solo para su información, si realmente quiere una coma en un campo, puede escapar de ella con una barra diagonal inversa, por ejemplo, Acme \, Inc. Consulte docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Esto también funciona en el diálogo de firma del IDE de Eclipse.
Yojimbo
1
Para mí, era un signo + en el campo "Organización". Pretender con una barra invertida hizo el truco, ¡gracias Yojibmo!
Chad Schultz
44
Wow, podría haber pasado días tratando de resolver esto, y fue una coma a nombre de mi organización (usé "..., LLC"). Gracias una tonelada.
akousmata
+1 Esta debería ser la respuesta aceptada. También debe haber una comprobación cuando el usuario ingresa (coma) (,) o un carácter especial, el asistente de exportación debe informarle al usuario o señalar a ese cuadro de texto en particular que esto no debe permitirse, cámbielo.
Zubair Ahmed
1
El problema para mí fue el código del país. Puse "+1" y aparentemente el + estaba planteando la excepción.
Donato
50

Me he enfrentado a un error al intentar exportar un archivo .apk firmado con Eclipse ADT. El error fue igual a tu error. En mi caso, usé un signo + antes del código del país. Al eliminar el signo + de este nombre, solucioné el problema y me permitió exportar completamente mi archivo .apk firmado. Además, este error puede ocurrir cuando se usan comas, barras inclinadas, punto y coma, comillas.

Ratna Halder
fuente
Gracias. También usé el signo '+'. )
DmitryKanunnikoff
Gracias. Esto resolvió mi problema que usé + en el código de país
Khizar Hayat
20

Intentaste usar caracteres especiales al exportar apk. No puedes usar estos caracteres especiales en ningún campo que se muestra al crear el apk. El conjunto de caracteres especiales incluye:

  • Comas (,)
  • Símbolo de adición (+)
  • Comillas (")
  • Barra diagonal inversa ("\")
  • Paréntesis angulados (<y>)
  • Punto y coma (;)
surhidamatya
fuente
7

Resolví estas excepciones cambiando el código del país:

+91 a India

Steve
fuente
Para este campo, debe usar el código de país iso 3166-1 , en su caso "IN"
PassKit
6

Encontré este error cuando no configuré la opción de nombre distinguido en absoluto. Esto se corrigió estableciendo la opción en una cadena con formato válido.

este comando falló con la excepción de formato AVA: (saltos de línea agregados para legibilidad)

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

Este comando se completó con éxito:

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"
Patricio
fuente
4

esto "Probablemente ingresó un carácter ilegal (algo así como (coma)) en un campo para Nombre, Organización o en otro lugar" funcionó para mí. Tenía una coma en el estado o provincia. marque esta respuesta por regla como la respuesta; como + en +91 es un personaje especial.

Kingsley Sithole
fuente
para mí, el error fue causado por una coma entre el nombre de la empresa y llc. (Gracias Kingsley Sithole).
tmr
1

Caracteres especiales / escapar de todas las buenas respuestas / podría ser el problema; no compartiste tu línea de comando "keytool" tan difícil de dar una respuesta precisa. Si está intentando generar un par de claves pub / priv (parámetro "-genkeypair"), entonces 1 problema sería que el nombre distinguido del sujeto cert ( argumento " -dname ") no se especificó en el AVA X.500 correcto (" A ttribute- V alue- A ssertion") formato. Por ejemplo, omitiendo el "CN =" delante del nombre común del sujeto (CN). Param debería verse así:

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

En este parámetro de nombre distinguido, " CN " ("Nombre común") es el " Atributo A ", " SomeCertSubject " es el " V alor".

usuario1172173
fuente
0

Google no puede decir "Carácter no válido". En cambio, dicen "Formato Incorret AVA". Elimina los caracteres no alfanuméricos, sin acentos y sin letras raras.

Josh
fuente
por favor, da las respuestas adecuadas!
Amanuel Nega