null safety 是 Dart 语言引入的一项重要特性,旨在让代码中的
null
可见且可控,并且确保它不会传递至某些位置从而引发崩溃。Dart 2.12 和 Flutter 2 均已支持 null safety。详见 Flutter 官方文档。
Agora RTC Flutter SDK 4.0.1 于 2021 年 5 月 25 日发布,在 API 具体功能对齐 Agora RTC Native SDK 3.4.2 的同时,还引入了 Dart 2.12.0 开始支持的 null safety 功能。这带来了以下影响:
- Agora RTC Flutter SDK 4.0.1 及后续版本支持 null safety,你必须使用 Dart 2.12 或更高版本。
- Agora RTC Flutter SDK 4.0.1 支持 Flutter 2.x(仅限于 Android 和 iOS 平台)。
- Agora RTC Flutter SDK 4.0.1 及后续版本不与之前的版本兼容。如果你的 Flutter 项目想要升级到 Agora RTC Flutter SDK 4.0.1,就必须同时进行 null safety 的相关移植。
详见发版说明。
为什么 Agora RTC Flutter SDK 的版本号从 3.x.x 变更为 4.x.x?
在 4.0.1 之前,Agora RTC Flutter SDK 的版本与当前的 Agora RTC Native SDK 完全一致,即(3.x.x)。但由于 4.0.1 引入 null safety 导致无法兼容之前版本,升级版本号是比较合理的做法。否则,如果新版本还是 3.x.x 且你在 pubspec.yaml
中有类似 agora_rtc_engine: ^3.3.1
的依赖项,自动升级后会编译失败。
我该如何升级到 Agora RTC Flutter SDK 4.0.1?
你需要保证你的 Flutter 项目及相关 dependency 都符合 sound null safety 标准。详见 Flutter 官方的迁移指南。