Flutter编译报错:找不到FallThroughError方法,不知如何定义
解决 Flutter 编译时
FallThroughError 找不到的问题 问题原因
FallThroughError 是 Dart 旧版本中的 API,在 Dart 2.14 及更高版本中已被移除。你使用的 cloud_firestore_platform_interface-5.7.7 和 firebase_auth_platform_interface-6.10.1 版本过旧,仍在调用这个已废弃的 API,导致编译失败。
解决方案
方案1:升级 Firebase 相关依赖包(推荐)
直接更新项目中 Firebase 依赖到兼容新版本 Dart 的版本:
- 打开项目根目录的
pubspec.yaml文件 - 将
cloud_firestore、firebase_auth等所有 Firebase 相关依赖的版本号更新为最新稳定版,或指定兼容的版本范围 - 执行以下命令更新依赖:
flutter pub upgrade flutter pub get
方案2:临时修改缓存依赖代码(应急用,不推荐)
若暂时无法升级依赖,可手动修改缓存中的依赖文件:
- 定位到报错提示的两个文件路径:
../../../AppData/Local/Pub/Cache/hosted/pub.dev/cloud_firestore_platform_interface-5.7.7/lib/src/platform_interface/utils/load_bundle_task_state.dart../../../AppData/Local/Pub/Cache/hosted/pub.dev/firebase_auth_platform_interface-6.10.1/lib/src/action_code_info.dart
- 将文件中的
throw FallThroughError();替换为以下任意一种写法:// 写法1:抛出通用不支持错误 throw UnsupportedError('Unexpected case'); // 写法2:若 Dart 版本 >=2.14,使用 unreachable 关键字 unreachable();
方案3:检查 Dart 版本兼容性
确认项目 Dart 版本与依赖包匹配:
- 打开
pubspec.yaml,查看environment中的sdk版本范围,确保其与 Firebase 依赖版本兼容 - 必要时可调整 Dart 版本到依赖包支持的范围(优先选择升级依赖而非降级 Dart)
内容的提问来源于stack exchange,提问作者Aqiela Adhlina
相关产品推荐
相关产品推荐

