主要涉及到android studio2.3以后给apk签名打包后安装失败的问题[INSTALL_PARSE_FAILED_NO_CERTIFICATES]方面的内容,对于android studio2.3以后给apk签名打包后安装失败的问题[INSTALL_PARSE_FAILED_NO_CERTIFICATES]感兴趣的同学可以参考一下。

自己的Android studio(windows平台上)刚刚更新到2.3版本,在没有充分了解它的新变化的情况下,使用的时候难免会遇到一些问题,比如gradle的问题可能是大家最常见的,不过解决的一般思路和之前(例如2.1更新到2.2之类的)没太大区别,本文要说不是gradle的问题,而是给apk正式签名后安装失败的问题。

       项目在正式上线之前一般都要有正式签名,也就是发布release版本的apk,而不再使用默认的debug版签名文件----debug.keystore。最常用的方式就是通过Android studio的工具栏里的Build-->Generate Signed APK...方式去签名。更多的步骤不再赘述,按照提示一步步的往下走就可以,相信大家都知道了。

 

这种方式签名后的apk就是发布版(release)的apk,Android studio2.3之前是可以直接安装到设备上的,安装方式之一就是在docs命令行里用adb install <apk绝对路径>命令去安装到连接到PC上的Android设备。但是,Android studio2.3以后(更高版本的不敢保证有同样问题,起码2.3目前是这样的,哈)这种方式打包apk的话就有了些变化:

就如画圈的地方,2.3以前应该是没有的(印象中是没有,如果有的话是我记错了,见谅),多了这些选项的话不选择是无法继续下去的,选择的话,我当时看到V2和apk有关,V1和jar有关,在没有弄明白区别的时候果断选择V2的方式,然后点击了Finish.等了一会,apk打包好了,我用adb install命令安装这个apk的时候却遇到这样的问题:

 

对,就是说没有签名证书!但是我确实是签了名了啊,而且相应的.jks文件也是存在的。我通过手动编辑gradle文件进行签名的话再安装也是OK的。于是我clean,rebuild,新建项目,重启studio...各种方式都试了,然后通过这种方式签名打包后的apk仍然存在这个问题。于是只能上网找答案,然后就发现了问题确实是在上述画圈的地方:把V1单独勾选或者V1和V2都勾选的话,再打包就是OK的,也就是说只要勾选了V1就行,生成的apk就可以正常安装...晕。

网上相关的文章也不少了,至于其他的签名方式也有无数文章讲到,这里不再重复造车。只是希望这篇文章能给和我一样的"姿势"遇到这个问题的各位一点启示,比如用新东西之前最好能知道它的新变化,发现和之前的不起眼的差异点(就如上图划线地方新出现的细节)要知道是干什么用的...否则就有可能在这个点上遇到问题,会浪费不必要的时间,也会使自己烦躁。