Androidkiller回编译的版本安装失败

自从androidstudio升级到4.4版本之后,对as编译的版本,用androidkiller反编译、回编译后,重新安装,会失败,使用华为p50安装,提示失败原因“1.该安装包无效或不完整。2.该安装包与操作系统不兼容”。用as直接编译的版本是没有问题的,但是只要反编译、回编译后,安装就失败。

                                

 

 我们的应用有很多定制需求,版本出来后,涉及到二次编译问题。之前一直以为是android killer的问题,所以中间改用apktool工具,单独反编译、回编译、签名,编写脚本,重新进行二次编译,安装还是失败。通过网上查资料,做实验,最终发现,不只是androidstudio升级导致问题,在gradle中,将minSdkVersion提高到23导致。

在minSdkVersion>=23,并且gradle plugin>3.6.0的情况下,在AndroidManifest文件中,android:extractNativeLibs如果没有强制赋值时,编译APK版本时,会默认赋值为false,代表安装的时候,不压缩so库,这时的so库是未对齐的,除非用zipalign -p 4对齐,否则系统不允许安装未对齐的apk;

正好我所使用的gradle、minSdkVersion都符合以上条件,在AS编译版本的时候,androidmanifest中自动添加了android:extractNativeLibs=false,导致问题出现。

之后手动在androidmanfiest中的application中添加android:extractNativeLibs=true,通过AS生成apk后,又通过android killer或者自己编写的反编译、回编译自动化脚本,二次打包生成的新版本,可以安装成功。

特此记录下~

参考文章:

https://blog.csdn.net/n_fly/article/details/120863382

APK瘦身属性——android:extractNativeLibs_分发吧的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值