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

使用Build Runner生成代码时遇GetIt依赖注入问题求助

Build Runner执行报错:GetIt+Injectable依赖注入问题

执行Build Runner时遇到错误,尝试通过GetIt配合代码生成器实现依赖注入,错误截图如下:
Build Runner错误截图

当前配置与代码

pubspec.yaml 依赖配置

# dependency injection
dependencies:
  injectable: ^1.5.0
  get_it: ^7.2.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0
  build_runner: ^2.1.5
  injectable_generator: ^1.5.3

injection.dart 代码

import 'package:get_it/GetIt.dart';
import 'package:injectable/injectable.dart';

final getIt = GetIt.instance;

@InjectableInit()
void configureDependencies() => $initGetIt(getIt);

问题定位与解决方案

1. 包版本不匹配(核心问题)

injectable(1.5.0)和injectable_generator(1.5.3)版本不一致,这两个包属于配套工具,版本差异会导致代码生成逻辑不兼容,直接引发Build Runner报错。

解决步骤:

  • 修改pubspec.yaml,将两个包版本统一:
    dependencies:
      injectable: ^1.5.3
      get_it: ^7.2.0
    
  • 执行flutter pub get更新依赖
  • 重新运行Build Runner并清理冲突文件:
    flutter pub run build_runner build --delete-conflicting-outputs
    

2. 代码层面检查

如果版本统一后仍报错,需确认:

  • 所有需要注入的服务类都添加了@injectable注解
  • injection.dart文件无语法错误,路径配置正确

内容的提问来源于stack exchange,提问作者Roberto Hermosilla F

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:32:12