Flutter 依赖错误 (flutter_svg: ^0.19.2+1)

Flutter Dependency Error (flutter_svg: ^0.19.2+1)

当我尝试添加 flutter_svg 依赖项以在我的项目中添加 SVG 格式图片时,它抛出了这样的错误:

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.19.2+1/lib/src/picture_provider.dart:57:59: Error: No named parameter with the name 'nullOk'.
        context != null ? Localizations.localeOf(context, nullOk: true) : null,
                                                          ^^^^^^
/C:/src/flutter/packages/flutter/lib/src/widgets/localizations.dart:413:17: Context: Found this candidate, but the arguments don't match.
  static Locale localeOf(BuildContext context) {

我正在使用 flutter(频道大师,1.26.0-18.0.pre.193)。和 flutter_svg:^0.19.2+1

我也有这个依赖的低版本,但仍然是同样的错误。

看起来 flutter_svg 没有迁移到 nullsafety,尝试切换到稳定频道并修复缓存文件。

1. flutter channel stable
2. flutter clean
3. flutter pub cache repair 
4. flutter packages get
5. flutter run

如果这没有帮助,那么试试这个 https://github.com/dnfield/flutter_svg/issues/479

是的,当我在最近的一个项目的 master 分支上工作时,这对我来说是个问题。这是一个只出现在 flutter 内部化包中的问题。

主要问题是 intl 包: https://pub.dev/packages/intl/install

要解决此问题,请在依赖项下方添加另一个部分,该部分将覆盖 intl 依赖项,该依赖项由 [=36= 拉取]包:

dependency_overrides:
  intl: ^0.17.0-nullsafety.2

它现在应该适用于 master 分支。另一个提示,你应该避免在 master 分支上工作,因为 master 一直在变化。您应该坚持 stablebeta.

我正在使用 flutter beta 版本 因为我正在使用 beta 开发我的网站,这个问题今天也遇到了,我通过 运行 这个命令解决了,

flutter downgrade

添加如下依赖

flutter_svg: ^0.20.0-nullsafety.3

而不是

flutter_svg: ^0.19.2+1

然后按照以下步骤操作

  1. 颤抖干净
  2. flutter pub get
  3. 颤动运行

我通过从这一行删除 nullOk: true 解决了这个问题,因为 Localizations.localeOf 仅将上下文作为参数

locale:
    context != null ? Localizations.localeOf(context) : null,

而不是

locale:
    context != null ? Localizations.localeOf(context, nullOk: true) : null,

或者您可以在终端上使用此命令行将频道从主频道更改为稳定频道。

flutter 通道稳定 扑干净