flutter apk启动闪退问题

15 篇文章 0 订阅
7 篇文章 0 订阅

今发布一个flutter apk 安装后启动时老是闪退,经过一遍又一遍查找,发现是指定了so的问题
看多次点击启动
在这里插入图片描述

一、比对打包后的apk

在出现该问题后也搜索了不少资料,参考过
https://blog.csdn.net/m0_37714581/article/details/90172002
https://www.uedbox.com/post/65078/
https://blog.csdn.net/qq_31262175/article/details/97644256
这些朋友的博客,很不幸我并未处理掉问题,接下来只好自己一点点排查了

发现打包后的apk体积相当小加粗样式
于是我尝试着去掉了so架构的指定
在这里插入图片描述
删除掉如上红箭头处的配置,最后配置如:
在这里插入图片描述

再次打包在这里插入图片描述
却大了这么多,再比对一下apk文件
1.8MB的apk在这里插入图片描述
9.2MB的apk
在这里插入图片描述
从上可见9.2MB的包里包含有arm64-v8a ,x86和x86_64 的so,而1.8MB的却没有,安装后启动自然无法成功了(自我推断)

然而在安装后测试证明我的推测是对的去掉对so架构的打包指定,果然可以成功启动

二、压缩apk

如上看apk体积的确有点大,soy得优化哈,这里使用压缩来减小包体积

在build.gradle(Module:app)的buildTypes节点下添加如下代码即可
在这里插入图片描述
为了安全性启动下混淆 ,主要是将proguard-rules.pro拷贝到android>app中,再配置不被混淆的第三方库,如下在这里插入图片描述
添加完成再次打包
在这里插入图片描述
包体积减小了0.4MB(虽然不多但还是有的)

还有初步发现 根据打包时flutter的提示我使用了flutter build apk --target-platform android-arm,android-arm64 --split-per-abi

只打包v8a的so的确要小得多(只有7.8MB),看:
在这里插入图片描述
刚翻到一个朋友对so的解释才发现单独打包个v7a好像并没有什么必要,如:
在这里插入图片描述
具体可以查看https://www.cnblogs.com/dongweiq/p/6824727.html

关于flutter 打包发布的详细操作可以参考flutter 官网

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的痕迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值