errore keytool: java.io.IoException: formato AVA errato


179

Sono nuovo nello sviluppo di Android; quando ho provato a firmare l'applicazione ho il seguente errore. Qualcuno può aiutarmi su questo problema?

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

Ho trovato una soluzione sui forum, ad esempio ho bisogno di eseguire il debug.keystorema non ci sono riuscito.



Risposte:


476

Probabilmente hai inserito un carattere illegale (qualcosa come, (virgola)) in un campo per Nome, Organizzazione o altrove.

Naturalmente se vuoi davvero un po 'di carattere può essere evitato con \ sign


21
Cordiali saluti, se vuoi davvero una virgola in un campo, puoi scappare con una barra rovesciata, ad esempio Acme \, Inc. Vedi docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Questo funziona anche nella finestra di dialogo della firma dell'IDE Eclipse.
— Yojimbo,

1
Per me, era un segno + nel campo "Organizzazione". Prepararsi con una barra rovesciata ha funzionato, grazie Yojibmo!
— Chad Schultz,

4
Wow, avrei potuto passare giorni cercando di capirlo, ed era una virgola nel nome della mia organizzazione (ho usato "..., LLC"). Grazie mille.
— Akousmata,

+1 Questa dovrebbe essere la risposta accettata. Inoltre, dovrebbe esserci un segno di spunta quando l'utente immette (virgola) (,) o un carattere speciale che la procedura guidata di esportazione dovrebbe far sapere all'utente o indicando quella particolare casella di testo che ciò non dovrebbe essere consentito, per favore cambiarlo.
— Zubair Ahmed,

1
Il problema per me era il codice del paese. Ho messo "+1" e apparentemente il + ha sollevato l'eccezione.
— Donato,

51

Ho riscontrato un errore durante il tentativo di esportare un file .apk firmato con Eclipse ADT. L'errore era uguale al tuo errore. Nel mio caso, ho usato un segno + prima del prefisso internazionale. Rimuovendo il segno + da questo nome ho risolto il problema e mi ha permesso di esportare completamente il mio file .apk firmato. Inoltre, questo errore può verificarsi quando si utilizzano virgola, barra, punto e virgola, virgolette.


Grazie. Ho usato anche il segno '+'. )
— DmitryKanunnikoff il

Grazie. Questo ha risolto il mio problema che ho usato + nel prefisso internazionale
— Khizar Hayat,

20

Hai provato a usare caratteri speciali durante l'esportazione di apk. Non puoi usare questi caratteri speciali in nessun campo mostrato durante la creazione dell'apk. Il set di caratteri speciali include:

  • Virgole (,)
  • Simbolo aggiunta (+)
  • Virgolette (")
  • Barra rovesciata ("\")
  • Parentesi angolate (<e>)
  • Punto e virgola (;)


6

Ho riscontrato questo errore quando non ho impostato l'opzione del nome distinto. Ciò è stato corretto impostando l'opzione su una stringa formattata validamente.

questo comando non è riuscito con l'eccezione del formato AVA: (interruzioni di riga aggiunte per leggibilità)

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

questo comando è stato completato correttamente:

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

questo "Probabilmente hai inserito un carattere illegale (qualcosa del tipo, (virgola)) in un campo per Nome, Organizzazione o altrove." Ha funzionato per me. Avevo una virgola sullo stato o sulla provincia. contrassegnare questa risposta per regola come risposta; come + in +91 è un carattere speciale.


per me, l'errore è stato causato dalla virgola tra nome dell'azienda e llc. (grazie Kingsley Sithole).
— tmr

1

Caratteri speciali / fuga da tutte le risposte valide / potrebbe essere il problema; non hai condiviso la tua riga di comando "keytool" così difficile da dare una risposta accurata. Se stai cercando di generare una coppia di chiavi pub / priv (parametro "-genkeypair"), 1 problema sarebbe che il nome distinto soggetto cert (" -dname " arg) non è stato specificato nell'AV.500 X corretto (" A ttribute- V alue- A ssertion") formato. Ad esempio, omettendo "CN =" davanti al nome comune soggetto (CN). Param dovrebbe assomigliare a questo:

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

In questo distinto nome param, " CN " ("Nome comune") è " A ttribute", " SomeCertSubject " è " V alue".


0

Google non può dire "Carattere non valido". Invece, dicono "Incorret formato AVA" Rimuovi tutti i caratteri non alfanumerici, nessun accento e nessuna strana lettera.


per favore, dai le risposte adeguate!
— Amanuel Nega,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.