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

执行build_runner命令失败:BuildForInputLogger缺失成员实现

问题解决:build_runner编译失败(Logger.onLevelChanged未实现)

问题详情

执行命令:
fvm flutter pub run build_runner build --delete-conflicting-outputs

出现错误:

构建build_runner:build_runner失败:
../../../.pub-cache/hosted/pub.dev/build_runner_core-6.1.12/lib/src/logging/build_for_input_logger.dart:13:7: 错误:非抽象类'BuildForInputLogger'缺少以下成员的实现:

  • Logger.onLevelChanged
    请尝试以下操作之一:
  • 提供实现,
  • 从父类或混入继承实现,
  • 将类标记为抽象类,
  • 提供'noSuchMethod'实现。

class BuildForInputLogger implements Logger {
^^^^^^^^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/logging-1.2.0/lib/src/logger.dart:162:22: 上下文:'Logger.onLevelChanged'定义在此处。
Stream<Level?> get onLevelChanged {
^^^^^^^^^^^^^^
pub 执行结束,退出码1

当前环境:

  • Flutter SDK版本:3.7.8
  • pubspec.yaml依赖:
mobx: ^2.0.1
  flutter_mobx: ^2.0.0
  provider: ^5.0.0
  • 开发依赖:
dev_dependencies:
  flutter_test:
    sdk: flutter
  mobx_codegen: ^2.0.1+3
  build_runner: ^1.12.2

原因分析

logging包1.2.0版本新增了onLevelChanged成员,但你使用的旧版build_runner(1.12.2)依赖的build_runner_core未实现这个新成员,导致依赖冲突引发编译错误。

解决方案

方案一:升级build_runner到兼容版本

修改pubspec.yaml中的开发依赖,将build_runner版本升级到适配Flutter 3.7.8的版本(比如^2.1.10):

dev_dependencies:
  flutter_test:
    sdk: flutter
  mobx_codegen: ^2.0.1+3
  build_runner: ^2.1.10

执行以下命令更新依赖:
fvm flutter pub get
之后重新运行build_runner命令即可。

方案二:锁定logging包到旧版本

如果不需要升级build_runner,可在pubspec.yaml中添加依赖覆盖,强制使用无onLevelChanged成员的logging 1.1.1版本:

dependency_overrides:
  logging: ^1.1.1

执行fvm flutter pub get更新依赖后,重新运行build_runner命令即可解决问题。

内容的提问来源于stack exchange,提问作者Shoeb Sultan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:30:06