5

将 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 组件时会发生什么变化,如何纠正?

我很感激任何帮助...

4

5 回答 5

8

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

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

  • 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

别名不知道为什么,也许有人把蚂蚁库搞砸了?

于 2012-07-26T22:33:44.543 回答
3

我在这个话题上只花了大约 5 小时......这一切都归结为密码后面的空格。

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

因此,确保行尾没有空格可能会有所不同。这为我们解决了问题 - 无需使用 JDK7(尽管无论如何它似乎构建和工作都很好,至少来自 ant)。

于 2012-08-02T16:08:40.053 回答
2

当心错误消息:

错误key.store.password导致:

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

而错误key.alias.password会导致:

无法恢复密钥

对于只检查商店密码keytool -v -list mykeystore.keystore并且从未验证过 alias.password 的人。

于 2013-08-28T12:10:16.697 回答
1

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

build_v1.sh

ant release
p@ssw0rd
p@ssw0rd

在 v20 中它失败了,因为密码未被接受。它似乎与行尾字符有关,但我不确定。为了防止构建过程要求输入密码,您可以将密码属性添加到 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

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

于 2012-08-15T18:49:47.217 回答
0

看起来你的调试密钥没有被 ant 看到。

于 2012-07-24T22:52:39.590 回答