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.



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


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.


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 (;)


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"

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.


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".


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.


por favor, dê respostas adequadas!
Amanuel Nega
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.