修改apk里的dex並且修復后重新打包進apk里,使用signapk.jar簽名后安裝仍然出現INSTALL_PARSE_FAILED_NO_CERTIFICATES,搜了很久,使用了多種方法簽名仍然安裝不上,最后在網上搜到了答案,詳見這里。
原因是之前apk內已經有一個簽名文件了,就在apk壓縮包的META-INF路徑下,后綴為RSA和SF的文件,如果再次簽名,就會在META-INF又新增一個RSA和SF的文件,實際上相當於APK內有兩個簽名。解決方法是刪除之前的RSA和SF文件,只保留最新增加的一個簽名。