keytool error :java.io.IoException:Incorrect AVA format
AndroidAndroid KeystoreAndroid 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