Flutter 如何在使用Flatter_svg包时修复此nullOk错误?

Flutter 如何在使用Flatter_svg包时修复此nullOk错误?,flutter,dart,Flutter,Dart,我连接了这个包,将它添加到main.dart,我试图编译这个应用程序,但是我得到了这个错误。救命啊!我该怎么办 错误 在调试模式下启动XT1562上的lib\main.dart。。。 正在运行Gradle任务“assembleDebug”。。。 /D:/flatter/.pub cache/hosted/pub.dartlang.org/flatter_svg-0.18.1/lib/src/picture_provider.dart:50:59:错误:没有名为“nullOk”的命名参数。 上下

我连接了这个包,将它添加到main.dart,我试图编译这个应用程序,但是我得到了这个错误。救命啊!我该怎么办

错误

在调试模式下启动XT1562上的lib\main.dart。。。
正在运行Gradle任务“assembleDebug”。。。
/D:/flatter/.pub cache/hosted/pub.dartlang.org/flatter_svg-0.18.1/lib/src/picture_provider.dart:50:59:错误:没有名为“nullOk”的命名参数。
上下文!=无效的localeOf(上下文,nullOk:true):null,
^^^^^^
/D:/flatter/packages/flatter/lib/src/widgets/localizations.dart:413:17:Context:找到此候选项,但参数不匹配。
静态区域设置localeOf(BuildContext上下文){
^^^^^^^^
失败:生成失败,出现异常。
*其中:
脚本“D:\flatter\packages\flatter\u tools\gradle\flatter.gradle”行:991
*出了什么问题:
任务“:app:compileFlutterBuildDebug”的执行失败。
>进程“命令”D:\flatter\bin\flatter.bat“”以非零退出值1结束
*尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的细节。
*得到更多的帮助https://help.gradle.org
构建在15秒内失败
异常:Gradle任务assembleDebug失败,退出代码为1

  • 添加以下依赖项
  • 运行
    flatter clean
    命令
  • 运行
    flatterpub-get
    命令
  • 运行
    flatterrun
    命令或运行项目

  • 问题是,启用了空安全功能的颤振版本(在撰写本文时,当前在beta频道上),
    nullOk
    参数已被删除
    Localizations.localeOf
    ,但您使用的是一个仍在使用
    nullOk
    的包(在本例中为
    flatter\u svg


    如果您使用的是Flitter的空安全版本,那么您也应该使用其他软件包的空安全版本(如果可用)。或者,您可以使用最新版本的Flitter而不使用空安全(版本1.22.x)直到您的所有依赖程序包都已迁移以实现空安全性。

    在我最终获得解决方案之后,我遇到了同样的问题。 这里很简单:

    首先,添加预发布的以下依赖项:

    flutter_svg: ^0.20.0-nullsafety.3
    
    然后运行
    flatterpub-get
    命令


    现在您可以运行您的项目了。请确认没有错误。

    在本地缓存文件
    /lib/src/picture\u provider.dart的第57行上。

    (请参阅错误消息中的完整路径)替换
    Localizations.localeOf(context,nullOk:true)
    ,带有
    Localizations.maybellocaleof(context)


    这是一个快速且不干净的解决方案,但应一直保持到软件包修复为止。

    请注意,如果您想为自己或正在使用的软件包修复此错误,可以通过以下方式进行修复

    为了修改代码以使用新形式的API,请将包含nullOk=true作为参数的所有调用实例转换为使用API的maybe形式

    MediaQueryData?data=MediaQuery.of(上下文,nullOk:true);
    
    变成

    MediaQueryData?data=MediaQuery.maybeOf(上下文);
    

    每个人都是对的:将
    flatter\u svg:^0.20.0-nullsafety.3
    flatter\u svg:^0.19.3
    (如果您还不能迁移到null safety)是解决方案。 我想补充一点:如果您使用的软件包依赖于Flatter_svg,但由于使用较旧的版本,仍然会出现错误,则可以通过以下方式修复:

    dependency_overrides:
      flutter_svg: ^0.19.3
    

    我浪费了很多时间,因为
    标志:^3.2.2
    包使用了
    flatter\u svg:^0.19.1
    ,它导致了相同的错误。

    尝试了所有方法,但都没有成功

    最后,更新依赖项对我来说很有效

    这是我在pubspec.yaml文件中更新的内容:

    除去

    flutter_svg: ^0.18.0
    
    并补充说

    flutter_svg: ^0.20.0-nullsafety.3
    
    然后,我跑了

    flutter pub get
    

    你在哪个颤振频道工作?我使用主频道谢谢,@prahack在CodeMagic Pipeline上面对这个问题已经有一周了。
    flutter pub get