Flutter运行build runner报错:Watcher失败,class 'FileSystemEvent'无法继承
解决Flutter中build runner报错“Watcher fails with class 'FileSystemEvent' can't be extended”
错误原因:该报错源于
watcher包版本与Dart SDK 3.0+不兼容。Dart 3.0及以上版本将FileSystemEvent设为sealed类,禁止被扩展,而旧版watcher包中存在扩展该类的代码,导致运行build runner时触发错误。修复方案:
- 更新
watcher包到兼容版本- 打开
pubspec.yaml,若直接依赖watcher,将版本指定为^1.1.0及以上;若为间接依赖,执行dart pub outdated查看当前版本,再通过dart pub upgrade watcher(Flutter项目用flutter pub upgrade watcher)升级到兼容版本。
- 打开
- 清理缓存并重新执行build runner
- 执行缓存清理命令:
dart pub cache clean(Flutter项目用flutter pub cache clean) - 重新运行build runner:
dart run build_runner build(Flutter项目用flutter pub run build_runner build)
- 执行缓存清理命令:
- 强制指定
watcher版本(针对间接依赖问题)
在pubspec.yaml中添加以下配置:
执行dependency_overrides: watcher: ^1.1.0dart pub get(Flutter项目用flutter pub get)后重新运行build runner。
- 更新
内容的提问来源于stack exchange,提问作者Khamidjon Khamidov
相关产品推荐
相关产品推荐

