首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]异常完美解决)

2012-11-05 
Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解

Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解决)

最近编程时遇到问题:写了一个android小程序,打包后用apktool反编译再打包都没问题,安装时出现Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误,网上查资料原来是签名的问题,解决方案如下。


《一》使用命令行生成签名文件 

(1)创建一个用来存放签名文件的文件夹Android_keystore
(2)在命令行窗口中输入命令:(粗体部分) 
 testbim_signed.apk

(3)最后验证是否签名成功 
Android_keystore>"C:\Program Files\Java\jdk1.6.0_30\bin\jarsigner.exe" -verify testbim_signed.apk
如果成功则 
输出: 

jar 已验证 

( 4 )安装到虚拟机上

Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]异常完美解决)

搞定~

命令参数说明:

-genkey    产生证书文件 
-keystore  指定密钥库的.keystore文件中 

-keyalg     指定密钥的算法

-validity    为证书有效天数,这里我们写的是20000天。 
-alias       产生别名 

在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,切忌需要记下来后面还要用,

注意:

1、CN(Common Name - 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。

2、在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。


热点排行