keytool错误:java.io.IoException:AVA格式不正确

时间:2012-08-04 11:44:12

标签: android android-keystore

我是Android开发的新手;当我一直试图签署该应用程序时,我遇到了以下错误。任何人都可以帮我解决这个问题吗?

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

我在论坛上找到了一些解决方案,例如我需要运行debug.keystore,但我没有成功。

11 个答案:

答案 0 :(得分:434)

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

当然,如果你真的想要一些charachter可以使用\ sign

进行转义

答案 1 :(得分:42)

尝试使用Eclipse ADT导出已签名的.apk文件时遇到错误。错误与您的错误相同。就我而言,我在国家代码前使用了+号。通过从此名称中删除+号,修复了问题并允许我完全导出已签名的.apk文件。 此外,使用逗号,斜杠,分号,引号时可能会发生此错误。

答案 2 :(得分:19)

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

  • 逗号(,)
  • 加法符号(+)
  • 引号(“)
  • 反斜杠(“\”)
  • 有角度的括号(<和>)
  • 分号(;)

答案 3 :(得分:5)

当我没有设置专有名称选项时,我遇到了这个错误。通过将选项设置为有效格式化的字符串来更正此问题。

此命令因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"

答案 4 :(得分:3)

我通过更改国家/地区代码解决了这些异常:

+91来  India

答案 5 :(得分:3)

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

答案 6 :(得分:1)

100% 会奏效。

在创建已签名的 APK 之前,您必须准备您的项目。

  1. 将 Flutter 自动化依赖项添加到您的 pubspec.yaml

依赖:
颤动:
SDK:颤动
颤振自动化:^1.1.4
目前 ^1.1.4 是最新的依赖项,这最终会改变。

  1. 获取新的依赖项

在您的项目目录中的命令提示符中运行 flutter packages get

  1. 设置签名

运行 flutter pub pub run flutter_automation --android-signin 你的命令提示符。然后你会被要求输入

然后你可以给出下面的代码。它下面的代码工作 100%。 (如果你想改变,你可以做到。) 输入密钥别名:

omor4flutter

输入名称为 (CN=popupbits.com, OU=DD, O=Popup Bits Ltd., L=Kathmandu, S=Bagmati, C=NP):

 CN=popupbits.com, OU=DD, O=Popup Bits Ltd., L=Kathmandu, S=Bagmati, C=NP

密钥密码:

 omor4flutter

密钥库密码:

 omor4flutter
  1. 生成已签名的 apk 或捆绑包

只需运行 flutter build apk --release 或 flutter build bundle --release 即可生成应用的签名 apk/bundle。

答案 7 :(得分:1)

在国家/地区代码前面输入 + 是我的错误。所以改变了如下值。

+77

它对我有用。

答案 8 :(得分:0)

不能谷歌说"无效字符"。 相反,他们说" Incorret AVA格式" 剥去任何非字母数字字符,没有重音符号,也没有奇怪的字母。

答案 9 :(得分:0)

特殊字符/转义所有好的答案/可能是问题所在;您没有共享实际的“ keytool”命令行,因此很难给出准确的答案。如果您尝试生成一个发布/私有密钥对(“ -genkeypair”参数),那么一个问题将是未指定证书使用者的专有名称(“ -dname ” arg)以正确的X.500 AVA(“ A 特技- V alue- A 序列”)格式。例如,在主题公用名(CN)前面省略“ CN =“。参数应该看起来像这样:

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

在此专有名称参数中,“ CN ”(“通用名称”)是“ A 属性”,“ SomeCertSubject ”是“ V alue”。

答案 10 :(得分:0)

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

观看演示,如何填写密钥库文件:

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

别名: Key0(由您决定)

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

名字和姓氏:您的专有名称,但不要使用特殊字符,例如$ unny @dam

组织单位:您的组织名称

组织:您的组织名称

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

州或省:您的州或省名称

国家代码(XX):如果不知道,请使用您的国家代码,然后搜索Google。

然后单击确定