今天给一个手里的debug出来的apk文件在命令行用jks签名,常规操作:
jarsigner -verbose -keystore app.jks -storepass app123 -keypass pwd123 -signedjar lovelight_signed.apk base.apk release
直接报错提示:·
jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 74499 but got 70814 bytes)
最后解决办法是:把要重签名的apk(base.apk)后缀改成zip,压缩软件打开后,删除里面的META-INF文件目录,保存,然后重新改回apk后缀,即可。
再查看签名状态没有问题:
jarsigner -verify lovelight_signed.apk
如果不能解决推荐阅读这篇文章,再研究讨论: 使用apktool、jarsigner反编译并重新签名apk