jarsigner: 找不到 qulordy 的证书链。qulordy 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。
这就是错误的语句,提示。
关于这个错误,网上说的比较少,找到一篇博客,是这么说的:
/**
*这是那篇博客中提到的问题,以及解决方法,原文地址:http://blog.csdn.net/jzh2012/article/details/7400737
*但是我看到这这个之后,还是摸不清头脑
*/
问题二:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。
方法:在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。
OK,他说的是对的,但是太模糊了,给第一次搞得人弄的更模糊了。
我就跟着他这个方向去找,有重新用命令生成了一个keystore,命令如下
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
根据上面说的方法,:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。
我看了一下,的确相同,然后又eclipse中->Android Tools -> Export Signed Application Package...
然后use existing keystore,这次竟然可以,那么说明我的keystore是没错的,问题肯定在eclipse或者我的build.xml跟custom_rules.xml里面。
但是1.eclipse肯定不会错
跟着2.build.xml是自动生成的,也不会错(当然怀疑权威的态度是很好的,但是这里我选择了相信)
最后3.就只能是我写的custom_rules.xml出了问题了。
经过详细检查果然,(下面的代码是custom_rules.xml中的)
<property
name="keystore"
value="android.keystore" />
<property
name="keystore.password"
value="your password" />
<property
name="key.alias"
value="andy.com" /> <!-- 这里错了 用到引用的博文的解决方法了 -->
将上面改成
<property
name="keystore"
value="android.keystore" />
<property
name="keystore.password"
value="your password" />
<property
name="key.alias"
value="android.keystore" /> <!-- 跟keystore保持一致, 我终于明白了这句话的意思了 -->
然后custom_rules.xml中其他地方在用就不会错了