Flutter升级更新2.0后常见报错处理

简介: Flutter升级更新2.0后常见报错处理

Flutter SDK更新后,经常会出现一些错误。尤其是Flutter 2.0,有些API也跟着变动了,真是牵一发而动全身啊,非常坑。

以下是我更新2.0后老项目的报错解决方法。

报错信息:Error: No named parameter with the name ‘resizeToAvoidBottomPadding’

原因:resizeToAvoidBottomPadding在新版本的Scaffold中被resizeToAvoidBottomInset属性取代了,替换即可。

Scaffold(
  // resizeToAvoidBottomPadding: false,
  resizeToAvoidBottomInset: false,
  ..........
)

BuildContext方法改动

报错信息:The method ‘ancestorWidgetOfExactType‘ isn‘t defined for the type ‘BuildContext‘

原因:BuildContext的ancestorWidgetOfExactType被findAncestorStateOfType替代,并且没有了参数,在泛型中传入需要获取的Widget即可。


ancestorWidgetOfExactType ----> findAncestorWidgetOfExactType

// SliverAppBar sliverAppBar = context.ancestorWidgetOfExactType(SliverAppBar);
SliverAppBar sliverAppBar = context.findAncestorStateOfType<SliverAppBar>();

报错信息:Error: The method ‘ancestorStateOfType’ isn’t defined for the class ‘BuildContext’.

2.0之前的写法

ComplexLayoutState state = context.ancestorStateOfType(const TypeMatcher<ComplexLayoutState>()) as ComplexLayoutState;

2.0之后的用法

ComplexLayoutState state = context.ancestorStateOfType<ComplexLayoutState>();

报错信息:Error: The method ‘inheritFromWidgetOfExactType’ isn’t defined for the class ‘BuildContext’.

原因:dependOnInheritedWidgetOfExactType()被dependOnInheritedWidgetOfExactType替代,并且参数是个可选命名参数,需要加上aspect。

// context.dependOnInheritedWidgetOfExactType(_xxxProvider)
context.dependOnInheritedWidgetOfExactType(aspect: _xxxProvider)

报错信息:Error: Method not found: ‘TypeMatcher’.

2.0中,TypeMatcher这个类已经被移除,ancestorStateOfType方法中也没有TypeMatcher这个参数了。

报错信息:Error: No named parameter with the name ‘nullOk’.

原因:在Flutter2.0中,很多类的of(..)静态方法中的nullok参数被移除了,比如Scaffold.of()Localizations.localeOf()Navigation.of(),都不需要nullok参数了。

// final ScaffoldState scaffold = Scaffold.of(context, nullOk: true);
final ScaffoldState scaffold = Scaffold.of(context);

// Localizations.localeOf(context, nullOk: true);
Localizations.localeOf(context);

报错信息:Error: Method not found: ‘CupertinoPageRoute.buildPageTransitions’.

报错信息:Error: The getter ‘title’ isn’t defined for the class ‘TextTheme’

widget.textTheme?.title

报错信息:Error: The getter ‘body1’ isn’t defined for the class ‘TextTheme’.

widget.textTheme?.body1


相关文章
|
2月前
|
编解码 Dart 网络协议
Flutter如何玩转超低延迟RTSP/RTMP播放,跨平台视频流体验大升级,让你的应用秒变直播神器!
【9月更文挑战第3天】Flutter作为谷歌推出的跨平台移动UI框架,凭借高性能和丰富的生态系统广受好评。本文详细介绍如何在Flutter应用中实现低延迟的跨平台RTSP/RTMP播放,并提供具体示例代码。首先介绍了如何使用`flutter_vlc_player`播放RTSP流,然后讨论了优化视频播放以降低延迟的方法,包括调整播放器配置等。通过选用合适的播放器插件并进行优化,Flutter可在视频流播放领域提供卓越的用户体验。随着生态的发展,Flutter有望成为视频流媒体开发的首选框架。
275 6
|
4月前
|
Dart API 开发工具
Flutter Android 14 强制升级说明 2024
猫哥我也是心大,当群友问我 flutter 如何升级编译 Android 14 时才发现需要提交新版本。
Flutter Android 14 强制升级说明 2024
|
3月前
|
编解码 Dart 网络协议
"震撼揭秘!Flutter如何玩转超低延迟RTSP/RTMP播放,跨平台视频流体验大升级,让你的应用秒变直播神器!"
【8月更文挑战第15天】Flutter作为跨平台UI框架,以其高效性和丰富生态著称。本文详述如何利用flutter_vlc_player等插件在Flutter中实现低延迟RTSP/RTMP播放,并提供代码示例。通过优化播放器设置,如禁用缓冲、启用帧丢弃等,可进一步减少延迟,提升用户观看体验,展现了Flutter在视频流媒体应用中的强大潜力。
73 0
|
6月前
|
Go Docker 索引
Flutter 插件站新升级: 加入优秀 GitHub 开源项目
这几天晚上抽空把 Flutter 插件站升级,现在支持插件搜索,并收录了众多优秀的 GitHub 开源项目,让您轻松发现与插件相关的精品项目。
Flutter 插件站新升级: 加入优秀 GitHub 开源项目
|
Dart Java API
4、Flutter开发-导入并升级flutter-go示例
因Flutter升级,FlutterGo暂停维护,这里导入的项目只能切回到旧版本,这里为了适应新版本的Flutter和Dart,我们新建项目,升级flutter-go,并记录学习。 1、按照之前章节,新建一个flutter_go的Flutter项目,修改build.gradle文件
407 56
|
开发工具
Flutter SDK升级
Flutter SDK升级
143 0
Flutter SDK升级
|
Dart 监控 算法
闲鱼是怎么面向Flutter做技术体验升级的?
蛇打七寸,拨云见日——更快的flutter,更好的闲鱼
3913 0
闲鱼是怎么面向Flutter做技术体验升级的?
|
Dart
Flutter 06:【小插曲】请慎重升级最新版本 AndroidStudio
      小菜昨天耽误了很久,好不容易升级到 3.1.4 版本的 AndroidStudio,今天就遇到一个大问题,没办法只好回退到 3.1.3 版本。
1278 0
|
开发工具 git
Flutter升级到预览版(入坑)
当我知道今天Flutter推出了预览版,迫不急道的正常输入我们Flutter的升级命令.
1942 0
|
1月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin