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

AndroidAndroid Keystore

Android Problem Overview


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.

Android Solutions


Solution 1 - Android

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)

Solution 2 - Android

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.

Solution 3 - Android

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

Solution 4 - Android

I solved these Exception by changing the country code:

+91 to India

Solution 5 - Android

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"

Solution 6 - Android

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

Solution 7 - Android

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.

Solution 8 - Android

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.

Solution 9 - Android

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionpallaviView Question on Stackoverflow
Solution 1 - AndroidruleView Answer on Stackoverflow
Solution 2 - AndroidRatna HalderView Answer on Stackoverflow
Solution 3 - AndroidsurhidamatyaView Answer on Stackoverflow
Solution 4 - AndroidSteveView Answer on Stackoverflow
Solution 5 - AndroidPatrickView Answer on Stackoverflow
Solution 6 - AndroidgalaxisView Answer on Stackoverflow
Solution 7 - Androidkingsley sitholeView Answer on Stackoverflow
Solution 8 - AndroidAjay KumarView Answer on Stackoverflow
Solution 9 - AndroidPapelView Answer on Stackoverflow