keytool error :java.io.IoException:Incorrect AVA format
Asked Answered
V

9

218

I am new to Android development; when I have been trying to sign the application I have got the following error. Can anyone help me on this issue?

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

I have found some solution on the forums, for instance I need to run the debug.keystore but I was not successful.

Venlo answered 4/8, 2012 at 11:44 Comment(3)
Refer this links , groups.google.com/forum/?fromgroups#!topic/android-developers/… , mortalpowers.com/news/…X
And this: mortalpowers.com/news/…Cindicindie
Can't google say "Invalid Character". Instead, they say "Incorret AVA format" Strip away any non alphanumeric characters, no accents and no weird letters.Damiendamietta
K
555

Probably you entered illegal character(something like,(comma)) in a field for Name, Organization or somewhere else.

Of course, if you really want some character can be escaped with \ sign

"+" (plus sign) sign also causes this issue. (People often tend to use + sign for the country code field)

Kammerer answered 4/8, 2012 at 15:16 Comment(2)
Just FYI, if you really want a comma in a field, you can escape it with a leading backslash, e.g. Acme\, Inc. See docs.oracle.com/javase/6/docs/technotes/tools/solaris/…. This also works in the signing dialog of the Eclipse IDE.Fortunetelling
I found in code the list of characters that must be escaped ,+=<>#;"Sargassum
D
54

I have faced an error while trying to export a signed .apk file with Eclipse ADT. The error was same like your error. In my case, I used a + sign before the country code. By removing the + sign from this name fixed the problem and allowed me to fully export my signed .apk file. Also, this error can occur when use comma,slash, semi-colon, quotation.

Dessiedessma answered 5/8, 2012 at 6:18 Comment(1)
Thanks. This solved my issue i used + in country codeAught
R
22

You tried to use special characters while exporting apk.You can't use these special characters in any field shown while creating the apk. The special character set includes:

  • Commas (,)
  • Addition symbol (+)
  • Quotation mark (")
  • Back-slash ("\")
  • Angled brackets(< and >)
  • Semi-colon (;)
Routine answered 10/4, 2015 at 6:37 Comment(0)
T
9

I solved these Exception by changing the country code:

+91 to India

Tacheometer answered 7/3, 2014 at 6:12 Comment(1)
For this field you should be using the iso 3166-1 country code, in your case "IN"Chantel
A
8

Special chars/escaping all good answers/could be the problem; you didn't share your actual "keytool" command line so harder to give an accurate answer. If you're trying to gen a pub/priv key pair ("-genkeypair" param), then 1 problem would be that the cert subject distinguished name ("-dname" arg) wasn't specified in the correct X.500 AVA ("Attribute/Value" Assertion) format. For example, omitting the "CN=" in front of the subject common name (CN). Param should look something like this:

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

In this distinguished name param, "CN" ("Common Name") is the "Attribute", "SomeCertSubject" is the "Value".

Allomorphism answered 8/6, 2019 at 16:11 Comment(1)
not exact but was close enough for me. i put companyname inc. and the . (dot) of the inc caused a fail.Kaspar
V
7

I came on this error when I did not set the distinguished name option at all. This was corrected by setting the option to a validly formatted string.

this command failed with the AVA format exception: (line breaks added for legibility)

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

this command completed successfully:

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"
Vindication answered 12/12, 2013 at 2:4 Comment(0)
L
5

I made a mistake by entering + in the front of the country code. so changed the values like below.

+7 to 7

it works for me.

Leung answered 10/5, 2021 at 18:29 Comment(0)
C
4

this "Probably you entered illegal character(something like ,(comma)) in a field for Name, Organization or somewhere else. " worked for me. I had a comma on the state or province. please mark this answer by rule as the answer; as + in +91 is a special character.

Cautionary answered 6/5, 2014 at 9:49 Comment(1)
for me, the error was caused by comma between company name and llc. (thank you kingsley sithole).Declarer
E
2

It's a common mistake, when we're going to generate Signed APK in Android Studio. So in Keystore file you can't use any special character or symbol such as (, \ + - * / < > ; ' ") otherwise, you get java.io.IoException.

See a Demo, how can you fill-up your Keystore file:

Password: anything without special character or symbol

Alias: Key0 (up to you)

Validity (years): 25 (up to you)

First and last Name: Your proper Name but don't use special character in your name like $unny @dam

Organizational Unit: Your organization Name

Organization: Your organization Name

City or Locality: Your City Name

State or Province: Your State or Province Name

Country Code (XX): Use your country code, if you don't know then search Google.

Then click OK

Erhard answered 18/11, 2020 at 8:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.