flutter apk启动闪退问题
今发布一个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 官网
flutter apk启动闪退问题的更多相关文章
- eclipse 启动 闪退
eclipse启动闪退 打开eclipse安装文件夹中的eclipse.ini文件. 把Xmx1024m修改为Xmx512m,可以解决闪退问题.
- Tomcat - 启动闪退
版本:Tomcat 9 问题:启动闪退.在控制台中输入"java -version"可以正常输出java的版本信息,但是使用start.bat启动时候闪退. 解决方法:配置系统环境 ...
- Zookeeper——启动闪退
Zookeeper好久不启动了,昨天项目要用Zookeeper了,我昨天突然启动它,调皮的zk居然害羞不让我看见它,启动不了,一启动就闪退,为啥呢?其实是因为报错了,有错zk启动时就会报错,所以昨 ...
- iReport 5.6.0 启动闪退的问题 解决方案
问题描述 本人使用的Windows版本的 iReport 5.6.0,安装成功后,双击桌面上的iReport-5.6.0图标,出现了闪退,无法正常启动的现象.现象如下: 问题原因 iReport 5. ...
- Jmeter4.0启动闪退问题解决方案
jmeter:4.0 jdk版本:1.8 在Jmeter.bat的最后添加pause可以让Jmeter启动停止: 添加了pause进行强制停止在启动命令页面,查看到Jmeter报错信息如下: 第一次解 ...
- JavaWeb之问题集(1) —— Tomcat启动闪退
1. 问题描述 环境: System:Windows 10 Professional JDK:1.8.0.212 Tomcat:9.0.22 原本可以正常的启动和关闭,后来突然的就无法使用了,无法启动 ...
- Jmeter启动闪退
背景:使用Jmeter进行性能测试脚本开发,实现Jmeter接口开发Java请求 问题再现: 1.在官网上下载Jmeter3.2版本,打开jmeter.bat,启动成功 2.在IDEA中创建测试项目和 ...
- MongoDB启动闪退问题完美解决
如果你看到这篇文章,说明你也遇到了启动MongoDB闪退的情况.由于只是学习MongoDB,所以很多人不想使用MongoDB的安装版,而使用免安装版.但是在启动mongod.exe 的时候,就会出现闪 ...
- windos 安装 redis 启动闪退
本来想在linux上安装redis的,后来觉得也没必要,主要是了解使用方法,和原理,在什么平台上安装都是大同小异的 接下来简单描述下碰到的小问题:闪退和启动失败 究其原因就是端口被占用了,但是自己并没 ...
- tomcat7启动闪退
今天电脑重装了系统,下载解压tomcat发现startup.bat打开就闪退.不知道咋回事,打开windows命令输入cmd->cd 进入到tomcat的bin目录,输入startup.exe回 ...
随机推荐
- 写Java程序有感
最近我练习了Java的学生管理系统的程序代码,多亏了前段时间小学期的系统类练习,让我比较容易地就能够理解该题的题意,再根据我学到的相关的Java知识,就好像是一个套用公式的逻辑. 用到的相关知识: 1 ...
- Python学习笔记--函数来啦!
函数 函数,就是组织好的,可重复使用的,用来实现特定功能的代码块 实际的小案例:不使用内置函数len,利用函数知识计算出字符串的长度 实现: 函数的基础定义语法 案例:自动查核酸 实现: 函数的传入参 ...
- 中国科学院2019年大学生数学夏令营考试试题 选做 (Mathematica练习)
目录 试题 1 6 9 solution to (1) solution to (2) 相关读物 试题 选择性地做一些,没有对答案.能机器算的我就不拿纸笔算了,当然实际考试是笔试... 不定期更新 1 ...
- 使用cmd命令行安装 windows系统
条件:Microsoft WindowsPE 或其他第三方 WindowsPE 1. 使用 diskpart 分区: list disk:列出所有磁盘 select disk 编号:选择某块磁盘 c ...
- dart基础---->函数传值
1. string type main(List<String> args) { String name = "huhx"; changIt(name); print( ...
- react组件之非受控组件和高阶组件
非受控组件 受控组件和非受控组件的区别 ----- value import React, { Component } from 'react' export default class extend ...
- tkinter的标签和按钮以及输入和文本
一.标签和文本 import tkinter as tk #1.定义tk的实例对象,也就是窗口对象 window = tk.TK() #2.设置窗口大小无法缩小和放大 window.resiable( ...
- Intellij_idea for循环 快捷键
for循环四次.用 i 进行for循环 4.for fori 增强for循环 int [] arrays=new int[2]; arrays.for
- YII2.0使用ActiveForm表单
Controller控制器层代码 <?php namespace frontend\controllers; use frontend\models\UserForm; class UserCo ...
- php7的一些新特性
php7的一些特性 打破一切 PHP7要打破一切. PHP开发人员应该接受打破版本之间向下兼容的定律.只要不允许大量的向后兼容,PHP7将是一个高度尊重的语言. 1.创建一个具体的核心语言 删除所有库 ...
