Flutter运行构建报错:BuildContext类未定义mounted getter
问题
应用此前运行正常,突然执行run或build操作时构建失败,具体错误信息如下:
- 代码报错位置:
lib/main.dart:1、../…/lib/fluttertoast.dart:154 - 核心错误:类
BuildContext未定义gettermounted,对应代码行:if (context?.mounted != true) {,提示需修正为现有getter名称,或定义名为mounted的getter/字段 - 构建失败根源:
:app:compileFlutterBuildDebug任务执行失败,关联脚本路径为/Users/me/Documents/flutter/flutter/packages/flutter_tools/gradle/flutter.gradle第1159行,进程以非零退出值1结束
解决方案
原因
BuildContext.mounted是Flutter 3.7及更高版本才引入的属性,出现该问题通常是以下两种情况:
- 降级了Flutter SDK版本,导致当前SDK不支持这个属性
- 使用的
fluttertoast包版本依赖了BuildContext.mounted,但你的SDK版本不兼容
修复方法
- 升级Flutter SDK到3.7+
执行终端命令:flutter upgrade - 修改依赖包代码(无法升级SDK时)
找到fluttertoast.dart第154行的context?.mounted,替换为Navigator.of(context, rootNavigator: true).mounted;如果是在State类中调用,直接使用当前State的mounted属性即可,无需通过context获取。 - 锁定兼容的fluttertoast版本
在pubspec.yaml中指定适配旧SDK的版本,例如:
然后执行:dependencies: fluttertoast: ^8.2.2flutter pub get
内容的提问来源于stack exchange,提问作者Ahmad Nasser
相关产品推荐
相关产品推荐

