erro do keytool: java.io.IoException: formato AVA incorreto

179

Eu sou novo no desenvolvimento do Android; quando estou tentando assinar o aplicativo, recebo o seguinte erro. Alguém pode me ajudar nessa questão?

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

Encontrei alguma solução nos fóruns, por exemplo, eu preciso executar o, debug.keystoremas não obtive sucesso.

pallavi
fonte

Respostas:

476

Provavelmente, você inseriu caracteres ilegais (algo como, (vírgula)) em um campo para Nome, Organização ou outro local.

Obviamente, se você realmente quer que algum caractere possa ser escapado com \ sign

regra
fonte
21
Apenas para sua informação, se você realmente deseja uma vírgula em um campo, pode escapar com uma barra invertida principal, por exemplo, Acme \, Inc. Consulte docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Isso também funciona na caixa de diálogo de assinatura do Eclipse IDE.
usar o seguinte
1
Para mim, era um sinal de + no campo "Organização". Preceder uma barra invertida fez o truque, obrigado Yojibmo!
Chad Schultz
4
Uau, eu poderia ter passado dias tentando descobrir isso, e era uma vírgula no nome da minha organização (eu usei "..., LLC"). Muito obrigado.
akousmata
+1 Esta deve ser a resposta aceita. Também deve haver uma verificação quando o usuário digitar (vírgula) (,) ou caractere especial que o assistente de exportação informe ao usuário ou aponte para a caixa de texto específica que isso não deve ser permitido, altere-o.
Zubair Ahmed
1
O problema para mim foi o código do país. Coloquei "+1" e, aparentemente, o + estava levantando a exceção.
811 Donato
50

Ocorreu um erro ao tentar exportar um arquivo .apk assinado com o Eclipse ADT. O erro foi o mesmo que o seu erro. No meu caso, usei um sinal de + antes do código do país. Ao remover o sinal de + desse nome, o problema foi corrigido e eu permitia que eu exportasse completamente meu arquivo .apk assinado. Além disso, esse erro pode ocorrer ao usar vírgula, barra, ponto e vírgula, cotação.

Ratna Halder
fonte
Obrigado. Também usei o sinal '+'. )
DmitryKanunnikoff
Obrigado. Isso resolveu o meu problema eu usei + em código de país
Khizar Hayat
20

Você tentou usar caracteres especiais ao exportar o apk.Você não pode usar esses caracteres especiais em nenhum campo mostrado ao criar o apk. O conjunto de caracteres especiais inclui:

  • Vírgulas (,)
  • Símbolo de adição (+)
  • Aspa (")
  • Barra invertida ("\")
  • Parênteses angulares (<e>)
  • Ponto e vírgula (;)
surhidamatya
fonte
7

Resolvi essas exceções alterando o código do país:

+91 para India

Steve
fonte
Para esse campo, você deve usar o código de país iso 3166-1 , no seu caso "IN"
PassKit 30/08/14
6

Eu encontrei esse erro quando não defini a opção de nome distinto. Isso foi corrigido definindo a opção para uma sequência formatada validamente.

este comando falhou com a exceção do formato AVA: (quebras de linha adicionadas para legibilidade)

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

este comando foi concluído com sucesso:

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
fonte
4

este "Provavelmente você inseriu caracteres ilegais (algo como, (vírgula)) em um campo para Nome, Organização ou outro lugar." funcionou para mim. Eu tinha uma vírgula no estado ou província. marque esta resposta por regra como a resposta; como + em +91 é um caractere especial.

Kingsley Sithole
fonte
para mim, o erro foi causado por vírgula entre o nome da empresa e o llc. (obrigado kingsley sithole).
tmr
1

Caracteres especiais / escapar de todas as boas respostas / podem ser o problema; você não compartilhou sua linha de comando "keytool" real com mais dificuldade para fornecer uma resposta precisa. Se você está tentando gerar um par de chaves pub / priv (parâmetro "-genkeypair"), um problema é que o nome distinto do assunto do certificado (" -dname " arg) não foi especificado no X.500 AVA correto ( " Um ttribute- V alue- Um ssertion") formato. Por exemplo, omitindo o "CN =" na frente do nome comum do assunto (CN). Param deve ser algo como isto:

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

Neste param name distinto " CN " ( "Common Name") é a " Uma ttribute", " SomeCertSubject " é o " V alor".

user1172173
fonte
0

O Google não pode dizer "Caractere inválido". Em vez disso, eles dizem "Formato AVA incorreto". Retire quaisquer caracteres não alfanuméricos, sem sotaques e sem letras estranhas.

Josh
fonte
por favor, dê respostas adequadas!
Amanuel Nega