![](/img/trans.png)
[英]Why does my Android project fail to build after updating my SDK to include v20 and the latest build tools?
[英]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.alias.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.