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.