[英]Upgrading projects Flutter SDK, migration to null-safety - compile time errors in packages
我们决定在现有项目中将 Flutter 版本从 1.22 升级到 2.0(迁移到零安全)。
我们检查 Flutter v2.0.0 然后运行以下命令:
dart pub upgrade --null-safety
Flutter 很好地解决了所有依赖冲突并为包设置了新版本。
在不更改 pubspec.yaml 中的最小环境 SDK(停留在 ">2.10.0 <3.0.0")的情况下,我们修复了代码中的所有重大更改。
VS 代码中的所有错误都消失了,所以我们可以编译代码。 但是,当我们编译时,我们会从包中得到错误,例如 reorderables、fl_chart、flutter_svg 等,说明某些类是未定义的。 似乎软件包是使用更高的 SDK 版本编译的,并且它们没有设置为最小 SDK 版本以匹配它们编译的版本。
所以 package 声明它可以用 Flutter 2.10.0 编译,但实际上,它无法编译,因为在这个版本的 Flutter 中它缺少一些必要的导入。
我的问题是,这是包的问题还是我处理迁移的方式有问题?
是否缺少正确设置最小 SDK 的软件包?
我的结论是,大多数软件包都缺少正确设置的 SDK 版本约束。 似乎作者通常为某个版本编译软件包,并且不检查所需的最低 SDK 版本。 运行依赖解析器时,它似乎解决了依赖关系,但在编译时它失败了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.