flutter 升级导致未为类 'fullObstruction' 定义 setter/getter 'ObstructingPreferredSizeWidget' 。错误

标签 flutter upgrade

我的项目在 1.10.0 版本上运行良好,我已将 flutter 升级到新版本 1.12,但出现以下错误

编译器消息:

../../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_platform_widgets-0.20.2/lib/src/platform_scaffold.dart:229:38: Error: The getter 'fullObstruction' isn't defined for the class 'ObstructingPreferredSizeWidget'.
 - 'ObstructingPreferredSizeWidget' is from 'package:flutter/src/cupertino/page_scaffold.dart' ('/C:/src/flutter/packages/flutter/lib/src/cupertino/page_scaffold.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'fullObstruction'.
      final obstruct = navigationBar.fullObstruction == null ||
                                     ^^^^^^^^^^^^^^^
../../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_platform_widgets-0.20.2/lib/src/platform_scaffold.dart:230:25: Error: The getter 'fullObstruction' isn't defined for the class 'ObstructingPreferredSizeWidget'.
 - 'ObstructingPreferredSizeWidget' is from 'package:flutter/src/cupertino/page_scaffold.dart' ('/C:/src/flutter/packages/flutter/lib/src/cupertino/page_scaffold.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'fullObstruction'.
          navigationBar.fullObstruction;
                    ^^^^^^^^^^^^^^^

目标 kernel_snapshot 失败:异常:快照创建过程中出错:空
构建失败。

再次将 flutter 降级到 1.10 项目工作正常,但我需要升级到这个 1.12 版本的 webrtc 库。有人可以帮助解决这个问题吗?

最佳答案

对于那些遇到这个问题的人,我在这里提供了一个解决方案。这个问题花了我2天时间,我一直在头疼,为什么我升级到flutter v1.12.13+hotfix.5-stable.zip的稳定版本后flutter包显示错误

解决方案:
上面的问题说 fullObstruction 没有为文件 CupertinoPageScaffold.dart 中的 ObstructingPreferredSizeWidget 类定义。所以我把文件放在了 flutter 包中的记事本中。原始路径是 C:\src2\flutter\packages\flutter\lib\src\cupertino , src2 是我的 flutter 包所在的文件夹。

在那个文件中,我看到一个变量在较新的版本中发生了变化,而不是之前的变量 fullObstruction,它们更改为 bool shouldFullyObstruct(BuildContext context);在较新的版本中。

abstract class ObstructingPreferredSizeWidget extends PreferredSizeWidget {
  /// If true, this widget fully obstructs widgets behind it by the specified
  /// size.
  ///
  /// If false, this widget partially obstructs.
  bool shouldFullyObstruct(BuildContext context);
}

然后我检查发生此错误的文件,
C:\src2\flutter.pub-cache\hosted\pub.dartlang.org\flutter_platform_widgets-0.20.2\lib\src\platform-scaffold.dart

早些时候这条线使用了已弃用的变量 fullObstruction,我用新变量替换并解决了问题,我的项目和之前一样正常工作。

最终障碍 = navigationBar.shouldFullyObstruct(context) == null ||
navigationBar.shouldFullyObstruct(context);

希望这可以帮助某人。

关于 flutter 升级导致未为类 'fullObstruction' 定义 setter/getter 'ObstructingPreferredSizeWidget' 。错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526493/

相关文章:

android - 用MySQL flutter 无限 ScrollView

ios - Flutter 不更新 subwidget

macos - 如何在 macOSX 终端命令行上将 makeinfo/texinfo 从 4.8 版升级/更新到 4.13 版?

windows - Delphi 10.1 - Windows 10 Creators Update 后日期时间选择器出现问题

android - 如何使用 Flutter/Dart 在设备之间发送和接收数据?

ios - Flutter/Dart SocketException 上传视频文件到 URL

flutter - 尝试在 Flutter 上运行此处示例时出错

XAMPP - Mysql 停止在 OS X Yosemite (10.10) 上工作

grails - 升级到 grails 2.3.1 后应用程序引导出错

java - Spring Integration 5.1 - 使用@IntegrationConverter 的集成流转换不起作用