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

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.

3

9 Answers

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)

2

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.

2

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

I solved these Exception by changing the country code:

+91 to India

1

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

1

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"

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.

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.

1

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

You Might Also Like