使用美团walle命令行方式打包后,在android9.0的手机上安装APP出现 Size of APK Signing Block is not a multiple of 4096

1、问题:使用美团walle(旧版jar包)命令行方式打包后,在android P (9.0)的手机上安装APP时候,出现了以下问题:

2、分析:根据错误的原因,主要是android p 需要 签名块(apksigningblock)的长度确保为 4096 的倍数。根据不同尝试,总结以下当2个条件满足时就会发生该问题:

旧版walle + build-tools 28.0.3 :我使用的是最新版 apksigner(build-tools 28.0.x) 进行签名,使用旧版的walle工具生成的apk签名块的长度变成了8225,不为4096的倍数。由于android P上使用了最新V3签名,我猜测是apksigner对apk进行签名时,使用的规则与之前的版本不一样,因此使用walle打渠道包后就出现了问题。

3、解决方式:

(1)如果不更新walle版本,可以使用28.0.x以下的版本,如27.0.3,26.0.x,25.0.x上的apksigner签名后再进行多渠道打包就无上述问题

(2)更新walle版本,就可以用28.0.x版本的apksigner进行签名后再打多渠道包

        在参考资料(1)链接里@vclub自己编译的walle.jar https://github.com/vclub/vclub.github.io/raw/master/walle-cli-all.jar ,亲测可以解决上述问题。

 

参考资料来源(1)https://github.com/Meituan-Dianping/walle/issues/264  

                     (2)https://source.android.google.cn/security/apksigning/v3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值