簡體   English   中英

升級項目 Flutter SDK,遷移到空安全 - 包中的編譯時錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM