繁体   English   中英

更新到android v20后,Ant无法构建签名的apk

[英]Ant fails to build signed apk after updating to android v20

在我将android和eclipse工具升级到v20后,发生了一些奇怪的错误

通过Ant构建在创建签名的apk时停止使用以下错误

 BUILD FAILED
 C:\Programs\Android\tools\ant\build.xml:1097: The following error occurred while executing this line:
 C:\Programs\Android\tools\ant\build.xml:1109: Cannot recover key

知道在升级到Android JB组件时可能会有什么变化,怎么能纠正这个?

我感谢任何帮助......

我们遇到了同样的问题,我们有一个解决方案,但不是真正的解释!

我们现有的构建在属性文件中具有以下内容:

  • key.store = COMPANY_NAME-key.keystore
  • key.alias = COMPANY_NAME
  • key.store.password = KEY_STORE_PASSWORD
  • key.alias.password = KEY_ALIAS_PASSWORD

但是这已停止工作 - 但是当我们更改key.alias.password以匹配商店密码时,它正在工作,例如:

  • key.store = COMPANY_NAME-key.keystore
  • key.alias = COMPANY_NAME
  • key.store.password = KEY_STORE_PASSWORD
  • key.alias.password = KEY_STORE_PASSWORD

别名不知道为什么,也许有人捣乱了蚂蚁库?

我刚刚花了大约5个小时来讨论这个话题......密码之后,这一切都归结为一个空格。

显然在以前的版本中它修剪密码,而在当前版本中它没有。

因此,确保在行尾没有空格可能会有所不同。 这解决了我们的问题 - 没有必要去JDK7(虽然它似乎构建和工作正常,至少从蚂蚁)。

小心错误消息:

key.store.password错误导致:

密钥库被篡改,或密码不正确:密码验证失败

错误的key.alias.password导致:

无法恢复密钥

对于通过keytool -v -list mykeystore.keystore仅检查store-password并且从不验证alias.password的人。

在SDK v20之前,我使用bash脚本构建了一个项目,输入如下密码:

build_v1.sh

ant release
p@ssw0rd
p@ssw0rd

在v20中它失败,因为密码未被接受。 它似乎与行尾字符有关,但我不确定。 要防止构建过程要求输入密码,可以将密码属性添加到ant.properties文件中:

ant.properties

key.store=company-key.keystore
key.alias=company
key.store.password=p@ssw0rd
key.alias.password=p@ssw0rd

对于我的特定项目,假的密钥库密码保存在ant.properties中,我在构建时使用发布密钥库密码替换它:

build_v2.sh

keyPass=p@ssw0rd
sed -i "s|key.store.password=.*|key.store.password=${keyPass}|g" ant.properties
sed -i "s|key.alias.password=.*|key.alias.password=${keyPass}|g" ant.properties
ant release

这允许我们的发布密钥库密码被隐藏在其他地方。 祝好运!

看起来蚂蚁看不到你的调试密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM