当前位置: 首页 > news >正文

《Flutter进阶》flutter升级空安全遇到的一些问题及解决思路

空安全出来挺久了,由于业务需求较紧,一直没时间去升级空安全,最近花了几天去升级,发现其实升级也挺简单的,不要恐惧,没有想象中的多BUG。

flutter版本从1.22.4升到3.0.5;
compileSdkVersion从19升到33(支持安卓12、13);
jdk版本从1.8升到11;
gradle版本从3.5升到7.5;

顺便把AS版本、kotlin版本、以及三四十个依赖插件通通升级到了最近版本。
跨度大范围广,也算是一次综合型的基础升级,遇到的问题比较杂,但总体也算顺利,这里把一些步骤和问题回忆记录一下,希望能帮到大家。

【主要步骤】

  • 备份代码、记录环境和工具的版本信息——目的是万一升级不成功还能回来
  • 检查可升级插件——目的是确保大部分插件都可升级,这样你的代码才能升级上去

运行 dart pub outdated --mode=null-safety


会看到有哪些库已支持空安全,如果现在还不支持空安全的,那么这个库多半是弃用了,寻找新的库吧。

tips:可以去官方插件库
搜索你弃用的那个库名,一般来说后面会有plus、v2 、new 之类的别的库,可能就是原来那个库的空安全版本。例如这个在这里插入图片描述

  • 升级插件——先解决插件问题,再升级代码
    当你确认大部分库都可以升级了,只有个别库被弃用,那么你就可以放心大胆的执行升级第三方库
    运行
    dart pub upgrade --null-safety
    去尝试升级插件。

如果过程中遇到问题,运行
dart pub update --null-safety --dry-run
去检查插件升级失败原因,挨个解决即可。

  • 代码升级——当第三方插件升级完成之后,开始升级自己的代码
    运行 dart migrate 可以直接移植你的代码,帮你自动填充很多的?和!
    如果遇到问题,说明还有库没升级到空安全,没关系,运行 dart migrate --skip-import-check 直接升级,升级完再回来解决即可。

  • JDK版本升级
    这个是因为升级到最新版本后,很多第三方库用了最新jdk编译

http://www.lryc.cn/news/45115.html

相关文章:

  • 最值得入手的五款骨传导耳机,几款高畅销的骨传导耳机
  • HashMap源码分析 (1.基础入门) 学习笔记
  • 6 使用强制类型转换的注意事项
  • Leetcode.939 最小面积矩形
  • Springboot项目快速实现过滤器功能
  • 基于springboot的简历系统的实现
  • Vue3中watch的用法
  • MS python学习(18)
  • java笔记
  • 对象的构造及初始化
  • Socket 读取数据
  • 小白的Git入门教程(一)
  • 第一个Vue程序
  • 2023上学期学习计划
  • 深入了解MySQL锁机制及应用场景
  • Java类和对象
  • aspnet053+sqlserver在线考试系统xns
  • 新一代大学英语(提高篇)
  • 阿里云OSS 203 Non-Authoritative Information问题解决
  • 【数据结构】你真的认识“”吗?它真的就只是“取地址”吗?或许你一直都在误解它。
  • [深入理解SSD 21] 固态硬盘GC机制 | GC 分类 | GC 过程 | GC 和 Trim 的关系
  • 大数据未来发展怎么样?
  • 【Linux】进程和线程间的区别与联系
  • 【C语言】变量和常量
  • 蓝桥杯-卡片换位(BFS)
  • 霍夫曼编码 | 贪心算法 2
  • async 与 await
  • MYSQL语句
  • C语言函数:内存函数memcpy()以及实现
  • ArcGIS基础:栅格分区转矢量再裁剪面图层【重分类】【栅格转面】