Flutter项目出现FallThroughError方法未找到错误求助
解决Flutter编译时Firebase依赖的「Method not found: 'FallThroughError'」错误
错误原因
该错误是由于你使用的Firebase相关依赖版本过旧,这些旧版本代码中调用了Dart 2.17及以上版本已移除的FallThroughError类,导致编译不兼容。
解决方案
方案一:升级Firebase相关依赖(推荐)
直接将所有Firebase依赖升级到兼容新版本Dart的稳定版,修改pubspec.yaml中的对应依赖项:
dependencies: firebase_core: ^2.24.2 firebase_auth: ^4.15.0 cloud_firestore: ^4.13.6 firebase_messaging: ^14.6.5 firebase_storage: ^11.6.5 firebase_core_platform_interface: ^5.0.0 # 以下非Firebase依赖保留原配置或按需升级 cached_network_image: ^3.2.3 clipboard: ^0.1.3 cupertino_icons: ^1.0.5 dio: ^5.3.2 dotted_border: ^2.0.0+3 flutter: sdk: flutter flutter_braintree: null flutter_datetime_picker: git: url: https://github.com/HasanAlqaisi/flutter_datetime_picker.git flutter_easyloading: ^3.0.5 flutter_google_places: ^0.3.0
执行以下命令完成升级:
- 清理旧缓存:
flutter clean - 获取新依赖:
flutter pub get - 重新编译项目:
flutter run
方案二:临时修改缓存代码(仅应急)
若暂时无法升级依赖,可手动修改报错的缓存文件:
- 找到报错文件路径(如
C:/Users/melvi/AppData/Local/Pub/Cache/hosted/pub.dev/cloud_firestore_web-2.8.10/lib/src/utils/web_utils.dart) - 将所有
throw FallThroughError();替换为throw UnimplementedError('Fall through'); - 对另外两个报错文件执行相同操作后重新编译
注意:此方法为临时修复,清理缓存或执行flutter pub get后会失效,优先推荐方案一。
内容的提问来源于stack exchange,提问作者Melvin V
相关产品推荐
相关产品推荐

