簡體   English   中英

庫“package:flutter/material.dart”是遺留的,不應導入到 null 安全庫中

[英]The library 'package:flutter/material.dart' is legacy, and should not be imported into a null safe library

我有一個 null-safe 庫,在示例文件夾中我使用了以下導入:

import 'package:flutter/material.dart';

但是,linter 給我以下警告:

庫“package:flutter/material.dart”是遺留的,不應導入到 null 安全庫中。 嘗試遷移導入的庫。 import_of_legacy_library_into_null_safe

示例項目的 pubspec.yaml 文件指定了 Dart SDK 的 beta 版本:

environment:
  sdk: ">=2.12.0-29.10.beta <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  my_library:
    path: ../

material.dart這時候不是已經轉換了嗎? 我需要向 pubspec.yaml 添加其他內容還是等待穩定版本發布?

使用dart pub outdated --mode=null-safety然后dart pub upgrade --null-safety將所有依賴項升級到 null-safety。

有關詳細信息 go 至https://dart.dev/null-safety/migration-guide

對此的修復相對簡單。 只需將 go 復制到您的 pubspec.yaml 文件,並確保您在那里的樂天依賴關系是 pub.dev 站點上的最新版本。

目前,在 2021 年 8 月 29 日, uto_size_text package 也一直發出此警報,因為我使用的是 Null 安全版本 Dart - 2.12.0,為了解決這個問題,我查看了 package 文檔,發現我有一個Prerelease version to Null Safety - launch,所以用了。

dependencies:
  auto_size_text: ^3.0.0-nullsafety.0

[:[庫 'package:flutter_ / .dart' 是遺留的,不應導入到 null 安全庫中。 嘗試遷移導入的庫。

打開運行/調試選項 -> select 編輯配置,如圖一所示。] 1 ] 1

然后在 Additional run args 部分添加 --no-sound-null-safety -> Apply->ok->run appllication 它對我有用 .imgur.com/A9aEb.png

我在Adhan Dart package 上遇到了同樣的問題,當我閱讀 package 網站上的文檔時,我有預發布版本,所以我將依賴項更改為adhan: ^2.0.0-nullsafety.2並且它有效。

更多詳情: https://pub.dev/packages/adhan/versions/2.0.0-nullsafety.1

如果有人因為 flutter realm package 來這里尋找這個錯誤。請將pubspec.yaml文件中的 realm 版本更改為具有 null 安全性的版本。 https://pub.dev/packages/realm/versions查看最新的 realm 版本。

更改自

dependencies
  realm: ^0.0.1

dependencies
   realm: ^0.8.0+rc  //check for latest version

go 到https://pub.dev/packages/font_awesome_flutter ,

在我的例子中復制最新版本的字體 ie (font_awesome_flutter: ^9.1.0),

然后將其添加到您的 pubspec.yaml 文件中,即 (font_awesome_flutter: ^9.1.0),

單擊 pub 獲取依賴項

go 到您的 input_page 文件

單擊獲取依賴項

http://pub.dev/復制最新版本的 package,並將其粘貼到 pubspec.yaml 文件中。

就我而言,我收到此錯誤是因為我在 pubspec.yaml 文件中的“dev_dependencies”下定義了“firebase_core”依賴項,但這是錯誤的。

我已經完成了 3 個簡單的步驟來解決問題,如下所示:

1- 我從https://pub.dev/packages網站獲得了最新版本。

2- 我在 pubspec.yaml 文件中的“依賴項”下定義了如下包:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^2.3.0

3- 我在 main.dart 文件中導入了 package,如下所示:

import 'package:firebase_core/firebase_core.dart';

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

在我的例子中,我的 firebase_core package 不是最新版本。 請檢查您的或任何其他 firebase 相關的依賴項。 一些軟件包可能是舊版本。

如果要使用 null 安全性,要么等待穩定版本,以便所有依賴項都可以支持 null 安全性。
或者,您可以通過切換到 Flutter SDK 的 beta 通道來使用 null 安全性。

使用以下命令切換到 flutter beta 通道。

$ flutter channel beta
$ flutter upgrade

如果您正在處理生產代碼,請小心,因為這可能會破壞代碼中的某些內容。 如果您正在進行生產,請堅持使用 flutter 穩定通道。

您可以使用以下命令檢查依賴關系狀態:

$ dart pub outdated --mode=null-safety

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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