【问题标题】:Unsound null safety without upgrading legacy packages不升级旧包的不健全的空安全性
【发布时间】:2021-09-13 04:28:32
【问题描述】:

我的应用有很多遗留库(例如EPUBEPUB_KITTY)尚不支持 Null Safety,并且作者已经处于非活动状态。

我读到我们可以通过在 main 中添加 // @dart=2.9 或添加来混合非 null 安全库和 null 安全库 --no-sound-null-safety 在构建期间。

首先我将 pubspec.yaml 中的 sdk 更新为:

environment:
  sdk: ">=2.12.0 <3.0.0"

然后我还更新了所有 dart 文件以支持 null 安全性。

我运行的构建命令是:

flutter run --no-sound-null-safety

但是我遇到了 path_provider 的错误:^1.6.11:

../../flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+1/lib/src/path_provider_windows_real.dart:126:25: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
 - 'GUID' is from 'package:win32/src/structs.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
          knownFolderID.addressOf, KF_FLAG_DEFAULT, NULL, pathPtrPtr);  
                        ^^^^^^^^^ 

我认为这是因为 null 安全性,但它不应该显示该错误,对吧?因为我使用了 --no-sound-null-safety 命令?无论如何,我已经将 path_provider 升级到path_provider: ^2.0.2 (latest null safety version) 以查看它是否可以解决问题,但是在构建之后我遇到了另一个关于依赖不兼容的问题,所以我再次更新了旧包以解决不兼容问题,但最终我'已经达到了错误与 EPUB 包有关的程度,如下所述:

Because image >=3.0.1 depends on xml ^5.0.0 and epub >=1.3.0 depends on xml >=2.6.0 <4.0.0, image >=3.0.1 is incompatible with epub >=1.3.0.

So, because testco depends on both epub ^2.0.0 and image ^3.0.2, version solving failed.

我该怎么办?这个包的作者已经处于非活动状态,所以我应该分叉 epub 包并手动更新 xml 库版本以修复构建错误吗?或者有没有办法在不更新 epub 包内部的情况下解决这个问题?请指教。 谢谢!

【问题讨论】:

    标签: flutter dart dart-null-safety


    【解决方案1】:

    当你查看包时,你会发现有一个关于 null-safety 的问题打开。

    虽然作者多年来没有回复并且似乎不活跃,但人们已经分叉它并且这个分叉已更新为空安全。

    https://pub.dev/packages/epubx

    您必须测试这是否满足您的需求。如果没有,请考虑帮助他们或自行分叉。

    其他包也是如此。检查他们的问题页面,看看其他人是否有同样的问题,也许它已经修复或者他们自己修复了。如果没有关于 null 安全性的问题,您可能应该一起寻找不同的包,因为这意味着除了您之外没有人使用它。

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 2021-03-15
      • 2021-03-09
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2021-06-13
      相关资源
      最近更新 更多