我是Android开发的新手;当我一直试图签署应用程序,我有以下错误。有人能在这个问题上帮帮我吗?

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

我在论坛上找到了一些解决方案,例如我需要运行调试。仓库,但我没有成功。


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

当然,如果你真的想要某些字符,可以用\符号转义

“+”(加号)符号也会导致这个问题。(人们通常倾向于使用+符号表示国家代码字段)


我在尝试用Eclipse ADT导出签名的.apk文件时遇到了一个错误。这个错误和你犯的错误一样。在我的例子中,我在国家代码前使用了一个+号。通过从这个名字中删除+号解决了这个问题,并允许我完全导出我的签名。apk文件。 同样,当使用逗号、斜杠、分号、引号时,也会发生此错误。


当我根本没有设置区分名称选项时,我遇到了这个错误。通过将该选项设置为有效格式化的字符串,可以纠正这一错误。

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

我通过改变国家代码解决了这些异常:

+ 91 印度


可能您在名称、组织或其他字段中输入了非法字符(例如,(逗号))。“对我有用。我在州或省上用了逗号。请按规定把这个答案标记为答案;As +在+91中是一个特殊字符。


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

逗号(,) 加法符号(+) 引号(") 反斜杠(\) 尖括号(<和>) 分号(;)


特殊字符/省略所有好的答案/可能是问题所在;您没有共享实际的“keytool”命令行,因此很难给出准确的答案。如果您试图生成一个pub/priv密钥对(“-genkeypair”参数),那么一个问题是,证书主题区分名称(“-dname”参数)没有以正确的X.500 AVA(“属性/值”断言)格式指定。例如,在主题通用名(CN)前面省略“CN=”。Param应该看起来像这样:

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

在这个特殊的名称参数中,“CN”(“Common name”)是“Attribute”,“SomeCertSubject”是“Value”。


这是一个常见错误,当我们在Android Studio中生成Signed APK时。因此在Keystore文件中,您不能使用任何特殊字符或符号,例如(,\ + - * / < >;’”)否则,将得到java.io.IoException。

查看一个演示,如何填充您的Keystore文件:

密码:任何没有特殊字符或符号的密码

别名:Key0(由您决定)

有效期(年):25年(由您决定)

姓和名:正确的名字,但不要在名字中使用特殊字符,如$unny @dam

组织单位:您的组织名称

组织:您的组织名称

城市或地点:您的城市名称

州或省:你的州或省名

国家代码(XX):使用你的国家代码,如果你不知道,那么搜索谷歌。

然后单击确定


我犯了一个错误,在国家代码前面输入了+。所以像下面这样改变值。

+7 至 7

这对我很管用。