在使用Android Studio(3.0)--》Build--》Generate Signed Apk...打包签名apk文件时,生成的apk在有些手机上无法正常安装,显示安装包解析错误!
能想到的可能出现的问题:
- 签名文件错误
- 打包的时候签名失败
通过adb install安装apk到手机上时,出现apk文件没有证书的错误。
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
重新用Android Studio再打包签名apk文件,换了一个新的签名文件,还是不行。
不是签名文件的问题,那怎么查看一个apk文件是否有签名?
在网上查阅资料后,知道JDK自带的jarsinger工具可以用来签名和验证签名。
先使用jarsinger验证apk文件是否有签名证书。
进入到jdk的bin目录下,使用jarsigner -verify命令验证apk。
结果显示apk未签名!
问题定位到了,是签名失败!
依然用Android Studio(3.0)--》Build--》Generate Signed Apk...生成apk,但这次用360加固助手再签名一次
签名完成,用jarsigner再验证一次
已验证,说明签名成功!
再安装到之前安装失败的手机上,显示安装成功
解决问题!
两个疑惑:
- AS在生成签名文件时为什么签名失败了?
- 签名失败的apk为什么有些手机可以正常使用?
两个收获:
- 使用jarsigner -verify可以验证apk是否有签名;
- 新的东西未必好,AS 3.0的坑还有很多。