2012-08-04 157 views
130

我是Android开发新手;当我一直在尝试签署应用程序时,出现以下错误。任何人都可以帮我解决这个问题吗?keytool错误:java.io.IoException:错误的AVA格式

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

我发现在论坛上的一些解决方案,比如我需要运行debug.keystore,但我没有成功。

+0

参考这个链接,https://groups.google.com/forum/?fromgroups#!topic/android-developers/1J7IFF_jPXQ,http://mortalpowers.com/news/android-development-error-incorrect-ava-format – rajeshwaran 2012-08-04 11:48:49

+0

而这个:http://mortalpowers.com/news/android-development-error-incorrect-ava-format – 2012-09-10 12:35:11

回答

375

可能是您在名称,组织或其他地方的字段中输入了非法字符(例如,(逗号))。

当然,如果你真的想一些charachter可以用\标志

+26

这应该是真的被接受的答案 – Jared 2012-12-06 05:36:28

+18

只是FYI ,如果你真的想在一个领域逗号,你可以用一个前导的反斜杠来逃避它,例如Acme \,Inc.请参阅http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html。这也适用于Eclipse IDE的签名对话框。 – Yojimbo 2013-04-30 21:26:48

+0

对我而言,这是“组织”字段中的+号。预先加上一个反斜杠做了个窍门,谢谢Yojibmo! – 2013-08-30 23:20:19

34

试图导出签署.apk文件使用Eclipse ADT我面临一个错误进行转义。错误与您的错误相同。就我而言,我在国家代码之前使用了+号。从这个名字中删除+符号解决了问题,并允许我完全导出我签名的.apk文件。 此外,使用逗号,斜杠,分号,引号时可能会发生此错误。

+0

谢谢,我也用'+'号表示了。) – DmitryKanunnikoff 2015-03-21 19:03:38

+0

谢谢!这解决了我的问题,我在国家代码中使用了+ – 2016-12-28 07:40:18

4

当我没有设置可分辨名称选项时,出现此错误。通过将该选项设置为有效格式化的字符串可以解决此问题。

此命令失败,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" 
3

我通过改变国家代码解决了这些例外:

+91India

+0

对于这个字段你应该使用[ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1)国家代码,在你的情况“IN” – PassKit 2014-08-30 04:52:30

+0

@ PassKit谢谢.. – Steve 2014-08-31 05:47:35

+0

也提到只有91工作,排除+。 – 2016-05-31 07:49:32

0

不能谷歌说“无效字符”。 相反,他们说“Incorret AVA格式” 删除任何非字母数字字符,没有重音和没有奇怪的字母。

+0

请给出正确的答案! – 2014-10-31 06:55:01

3

这可能是你在Name,Organization或其他地方的字段中输入了非法字符(类似于(逗号))“为我工作。我在州或省有一个逗号。请按规则将此答案标记为答案; as + in +91是一个特殊字符。

+0

对我来说,错误是由公司名称和llc之间的逗号引起的(谢谢kingsley sithole) – tmr 2014-10-24 17:18:07

5

我得到了同样的问题,原因是无效的字符。国家代码只是“+”号也是导致错误的原因。简单就是这里的方式。

15

您试图在导出apk时使用特殊字符。您不能在创建apk时显示的任何字段中使用这些特殊字符。特殊字符集包括:

  • 逗号(,)
  • 加号(+)
  • 引号( “)
  • 反斜杠(” \“)
  • 尖括号(<和>)
  • 分号(;)
1

很简单。你只需要删除国家代码的“+”。

实施例: 62至62

+0

这个答案已经发布过。 – 2018-02-27 11:32:06