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

执行flutter pub run build_runner build提示需启用non-nullable特性如何解决

问题解决方案

步骤1:修复依赖版本不匹配问题

当前问题核心底层原因是analyzer依赖版本和Flutter SDK版本不兼容,同时依赖的代码生成器未适配空安全特性导致的构建死锁,按以下顺序操作:

  • 先清理本地缓存的依赖和构建缓存,依次执行以下命令:
    flutter clean
    rm -rf .dart_tool/build
    
  • 升级所有依赖到适配当前SDK的版本,执行官方提示的升级命令:
    flutter packages upgrade
    
    如果升级后analyzer版本还是没有匹配到对应版本,直接在pubspec.yaml的dependency_overrides节点强制指定适配SDK 2.13.0的analyzer版本:
    dependency_overrides:
      analyzer: ^2.13.0
    

步骤2:修复空安全特性未启用的报错

This requires the 'non-nullable' language feature to be enabled报错是因为项目的Dart语言版本配置低于2.12(空安全从Dart 2.12正式支持),修改项目根目录下pubspec.yaml中的环境配置:

environment:
  sdk: '>=2.13.0 <3.0.0'

修改完成后执行flutter pub get重新拉取依赖。

步骤3:修复hive_generator构建阻塞问题

如果完成前两步后hive_generator相关任务仍阻塞,是旧版本hive_generator和高版本analyzer不兼容导致,直接升级hive全家桶到适配空安全的版本,在pubspec.yaml中更新以下依赖版本:

dependencies:
  hive: ^2.2.3
  hive_flutter: ^1.1.0

dev_dependencies:
  hive_generator: ^1.1.5
  build_runner: ^2.1.10

更新后重新执行构建命令即可:

flutter pub run build_runner build --delete-conflicting-outputs

注意:添加--delete-conflicting-outputs参数可以自动覆盖冲突的生成文件,避免手动清理旧生成代码的步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:06:04