ошибка keytool: java.io.IoException: неправильный формат AVA

179

Я новичок в разработке Android; когда я пытался подписать заявление, я получил следующую ошибку. Может кто-нибудь помочь мне в этом вопросе?

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

Я нашел какое-то решение на форумах, например, мне нужно запустить, debug.keystoreно мне это не удалось.

Pallavi
источник

Ответы:

476

Возможно, вы ввели недопустимый символ (что-то вроде (запятая)) в поле для имени, организации или где-то еще.

Конечно, если вы действительно хотите, чтобы некоторые символы можно было экранировать с помощью \ sign

правило
источник
21
Просто к сведению, если вы действительно хотите запятую в поле, вы можете избежать ее с помощью обратной косой черты, например, Acme \, Inc. См. Docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Это также работает в диалоговом окне подписи Eclipse IDE.
Йоджимбо
1
Для меня это был знак + в поле «Организация». Предваряющий с обратной косой чертой сделал свое дело, спасибо Ёджибмо!
Чад Шульц
4
Ух ты, я мог потратить дни, пытаясь это выяснить, и это была запятая в названии моей организации (я использовал "..., LLC"). Благодаря тонну.
Акусмата
+1 Это должен быть принятый ответ. Также должна быть проверка, когда пользователь ввел (запятая) (,) или специальный символ, мастер экспорта должен сообщить пользователю или указать на это конкретное текстовое поле, что это не должно быть разрешено, пожалуйста, измените его.
Зубаир Ахмед
1
Проблемой для меня был код страны. Я поставил «+1» и, видимо, + поднимал исключение.
Донато
51

Я столкнулся с ошибкой при попытке экспортировать подписанный файл .apk с Eclipse ADT. Ошибка была такой же, как ваша ошибка. В моем случае я использовал знак + перед кодом страны. Удаление знака + из этого имени решило проблему и позволило мне полностью экспортировать мой подписанный файл .apk. Также эта ошибка может возникать при использовании запятой, косой черты, точки с запятой, цитаты.

Ратна Гальдер
источник
Спасибо. Я тоже использовал знак «+». )
DmitryKanunnikoff
Спасибо. Это решило мою проблему, которую я использовал + в коде страны
Хизар Хаят
20

Вы пытались использовать специальные символы при экспорте apk. Вы не можете использовать эти специальные символы в любом поле, отображаемом при создании apk. Специальный набор символов включает в себя:

  • Запятые (,)
  • Символ добавления (+)
  • Кавычка (")
  • Обратная косая черта ("\")
  • Угловые скобки (<и>)
  • Точка с запятой (;)
surhidamatya
источник
7

Я решил эти исключения, изменив код страны:

+91 в India

Стив
источник
Для этого поля вы должны использовать код страны iso 3166-1 , в вашем случае «IN»
PassKit
6

Я столкнулся с этой ошибкой, когда вообще не установил опцию отличительного имени. Это было исправлено путем установки опции для правильно отформатированной строки.

эта команда завершилась неудачно с исключением формата AVA: (для удобочитаемости добавлены разрывы строк)

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

эта команда выполнена успешно:

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

это "Возможно, вы ввели недопустимый символ (что-то вроде (запятая)) в поле для имени, организации или где-то еще." работал для меня У меня была запятая в штате или провинции. пожалуйста, отметьте этот ответ по правилу как ответ; as + в +91 - специальный символ.

Kingsley Sithole
источник
для меня ошибка была вызвана запятой между названием компании и ООО. (спасибо, Кингсли, место для сидения).
tmr
1

Особые символы / избегание всех хороших ответов / может быть проблемой; Вы не поделились своей фактической командной строкой «keytool» так сложно, чтобы дать точный ответ Если вы пытаетесь сгенерировать пару ключей pub / priv (параметр "-genkeypair"), то проблема 1 заключается в том, что отличительное имя субъекта сертификата ( аргумент " -dname ") не было указано в правильном X.500 AVA (» ttribute- V alue- A ssertion") формат. Например, опуская "CN =" перед общим именем субъекта (CN). Парам должен выглядеть примерно так:

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

В этом различающемся имени пары, « CN » ( «Общее название») является « ttribute», « SomeCertSubject » является « V ALUE».

user1172173
источник
0

Не могу Google сказать "Неверный персонаж". Вместо этого они говорят «Incorret AVA format». Уберите все не алфавитно-цифровые символы, без акцентов и без странных букв.

мистифицировать
источник
Пожалуйста, дайте правильные ответы!
Амануэль Нега