修改apk里的dex并且修复后重新打包进apk里,使用signapk.jar签名后安装仍然出现INSTALL_PARSE_FAILED_NO_CERTIFICATES,搜了很久,使用了多种方法签名仍然安装不上,最后在网上搜到了答案,详见这里。
原因是之前apk内已经有一个签名文件了,就在apk压缩包的META-INF路径下,后缀为RSA和SF的文件,如果再次签名,就会在META-INF又新增一个RSA和SF的文件,实际上相当于APK内有两个签名。解决方法是删除之前的RSA和SF文件,只保留最新增加的一个签名。