You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加fluttertoast依赖后出现Overlay.maybeOf等编译错误,求解答

Fluttertoast依赖添加后编译错误的原因与解决办法

问题场景

在Flutter项目中添加fluttertoast依赖后,运行项目到设备时出现编译错误,错误信息如下:

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.3/lib/fluttertoast.dart:165:28: Error: Member not found: 'Overlay.maybeOf'.
    var _overlay = Overlay.maybeOf(context!);
                           ^^^^^^^
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.3/lib/fluttertoast.dart:154:18: Error: The getter 'mounted' isn't defined for the class 'BuildContext'.
- 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/framework.dart').
framework.dart:1
Try correcting the name to the name of an existing getter, or defining a getter or field named 'mounted'.
    if (context?.mounted != true) {
                 ^^^^^^^
3

FAILURE: Build failed with an exception.

* Where:
Script 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1159

原本计划在错误或成功场景中通过fluttertoast显示提示(不使用Snackbar),但添加依赖后出现上述问题。

错误含义分析

  • Overlay.maybeOf找不到:fluttertoast 8.1.3版本使用了Flutter SDK较新版本中新增的Overlay.maybeOf方法,当前项目的Flutter SDK版本过低,不支持该API。
  • BuildContext.mounted不存在:mounted属性是Flutter后期版本才添加到BuildContext类中的,旧版本Flutter里只有State类拥有mounted属性,因此低版本SDK无法识别该调用。

解决办法

方案1:升级Flutter SDK

将Flutter SDK升级到支持上述API的版本(建议至少Flutter 3.0及以上),执行以下命令:

flutter upgrade

升级完成后,重新运行项目即可。

方案2:降级fluttertoast依赖版本

打开项目中的pubspec.yaml文件,将fluttertoast的版本修改为与当前SDK兼容的旧版本(比如Flutter 2.x环境可使用8.0.8):

dependencies:
  fluttertoast: ^8.0.8

修改后执行以下命令更新依赖:

flutter pub get

之后重新运行项目。

方案3:替换为兼容更广的Toast库

如果不想修改SDK或依赖版本,可以换用其他兼容更多Flutter版本的Toast库,比如flutter_easy_toast或toastification,只需在pubspec.yaml中添加对应依赖即可。

内容的提问来源于stack exchange,提问作者Sourav Emon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:55:28