问题
打开re-sign.jar,将下载好的apk拖入re-sign.jar的界面进行重签名。重签名成功后,通过adb intall命令安装重签名后的apk文件失败。提示:Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]
原因
通过在网上不断搜索,终于找到了问题的原因(见该篇文章评论中的10楼)。即:resigner.jar进行重签名默认所使用的key文件在“user/.android/”路径下,叫“debug.keystore”。如果这个路径下没有这个文件,就只会去除原来apk的签名而已,并不能真正的实现重签名。
解决办法
生成一个“debug.keystore”文件,并放在“user/.android/”路径下。通过搜索,在百度上找到了一篇“生成安卓开发用的测试debug keystore”的百度经验帖。步骤如下:
1. 打开cmd,cd到你jdk所在路径的bin目录下:
cd "c:\Program Files\Java\jdk1.8.0_74\bin"
2. 输入以下命令,生成你的测试用key:
keytool -genkey -alias androiddebugkey -keyalg RSA -validity 20000 -keystore debug.keystore -storepass android -keypass android
然后就可以在bin目录下找到这个文件了,将这个文件剪切到“user/.android/”路径下:
之后再用re-sign.jar进行重签名,将重签名后的apk文件安装到模拟器。成功:
PS:对于一些有签名保护机制的apk,我们需要用相应公司自己生产的重签名工具进行重签名才可以,用以上方法仍然是行不通的。