Flutter升级版本打aar包在安卓工程崩溃

背景:flutter经过去年的公司内部培训及重写公司项目主页面,效果得到领导认可,能节约人力是重点,疫情后打算落地。牵头落地Flutter开发第一件事就是开发环境的统一,截止到上周我使用的flutter 版本一直是1.5.4_hotfix4版本,目前官方的稳定版本已经升级到1.12.13版本。最初想法是全部升级到最新,避免版本升级的bug还存在,1.12版本改动较多,主要是flutterActivity等涉及到原生跳转aar参数传递用到的类位置移动,刚开始以为导入新的包即可,后续发现除了参数传递丢失外1.12版本对AndroidX有要求,为了求稳,打算升级到1.9版本。

版本切换

如果配置flutter环境变量,直接终端输入以下命令查看当前flutter版本

flutter --version 

如下:

zhouhaodeMacBook-Pro:~ zhouhao$ flutter  --version
Flutter 1.9.1+hotfix.4 • channel unknown • unknown source
Framework • revision cc949a8e8b (6 months ago) • 2019-09-27 15:04:59 -0700
Engine • revision b863200c37
Tools • Dart 2.5.0
zhouhaodeMacBook-Pro:~ zhouhao$ 

再使用命令查看当前所在的分支,如果不在任何分支上,执行flutter upgrade时候会报错,无法链接到“https:flutter .io.xxxx”这个是flutter的仓库地址,当时我以为是缓存等问题尝试了重启还是没能解决,后面网上查了很多资料,才看到执行下面命令时候,任何分支都没勾选,

flutter  channel

修复也是简单的切换到对应的分支就可以了,一般开发是切到stable稳定分支,当然如果你能使用flutter update就不用管了

flutter channel stable

当然如果你要升级到最新版本直接使用

flutter  upgrade
 flutter version v1.7.8+hotfix4  //指定具体的版本

项目限制

公司项目较老有点年纪了,为了控制包体积,在项目build.gradle文件中做了如下配置:

ndk { abiFilters "armeabi" }

先说下表现的现象吧:年前时候,遇到各种坑,为了适配cpu版本在工程lib下创建了armeabi文件夹,并添加了flutter.so库,解决运行到公司项目报错问题。当时使用版本为1.5.4_hotfix4,没有任何问题,可以运行起来。
现在升级到后续版本,运行起来就会报错:


image.png

分析原因还是因为so库的问题,于是简化demo尝试不添加ndk { abiFilters "armeabi" }发现 运行正常,分析对应打出来的包,因为手机是华为P20pro当前的cpu架构是arm64位的,可以使用命令查看,默认打出来的是比较新的V8包:

再添加ndk { abiFilters "armeabi" } 代码,打包出来是指定armeabi 包,里面对比发现少了一个app.so ,这个应该就是问题。


image.png

image.png

我第一反应就是去把V8的aar解压,然后把这个app.so文件手动搞到armeabi里的aar 中,这个直接报错了,这里就不贴代码了

解决方案

其实当时就想过放弃去研究,比较1.5.4版本是支持的,另一边又放不下,想解决这个问题,升级到一个更高的版本,毕竟低版本到高版本是修复了不少bug.
把工程修改配置后,对比不添加任何限制打出来的包:
这里遇到一个比较干扰的问题,对应去网上一找,说是混淆的问题,轮番尝试后发现并没有修复


image.png

说回正题:
正常新建工程使用命令打包:


image.png

思路很重要,之前默认打包也是没有armarbi,我是手动添加了,然而这次明显添加了还不行,主要是flutter 版本升级后更改了这个so库的依赖及调用关系。
于是我用同样的思想,自己创建替换,在更改配置,打成aar,然后决绝问题。

遇到的问题

1.升级1.5.4_fix4以上版本,因为工程默认支持armeabi的CPU 导致升级后运行报错,解决方式,手动搞一份;没在公司项目运行验证
2.更新flutter版本 flutter upgrade报错找不到仓库地址“https://fluter.xxxx”,原因是不在任何channel上,执行flutter channel stable 再次执行即可
3.工程切换版本后,提示如下:暂无好的修复办法,因为切换一个正常工程就是正常的 临时方案,删除该工程,到其他工程下切换版本

image.png

4.升级到1.12版本后,原生代码如何传递参数到Flutter工程:
调用如下方法:另外如果集成的不是io.flutter下的FlutterActivity是另一个,那么不再需要初始化

 customFlutter = FlutterActivity.withNewEngine()
            .initialRoute("newRoute")
            .build(this)
        startActivity(customFlutter)

5.还遇到一个比较诡异的问题:能导包进来,但是运行就报错找不到这个包,我使用命令行./gradlew clean了很多次,仍然存在,估计是AS的一个bug吧,我重启电脑后发现怎么都找不到这个FlutterActivity了,估计就是之前的缓存问题引起
6.在处理升级问题时候,还大致看了1.12版本的更新,主要是移动了FlutterActivity的位置,目前我的理解是对安卓X的支持还不是很好,暂时等别的人先去踩坑吧,我们暂时使用1.9.1的fix版本。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容