我的项目在 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/