用re-sign.jar重签名apk后安装失败的解决办法

时间:2021-06-29 02:34:38

问题

打开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

用re-sign.jar重签名apk后安装失败的解决办法

然后就可以在bin目录下找到这个文件了,将这个文件剪切到“user/.android/”路径下:

用re-sign.jar重签名apk后安装失败的解决办法

之后再用re-sign.jar进行重签名,将重签名后的apk文件安装到模拟器。成功:

用re-sign.jar重签名apk后安装失败的解决办法

PS:对于一些有签名保护机制的apk,我们需要用相应公司自己生产的重签名工具进行重签名才可以,用以上方法仍然是行不通的。