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

Flutter中// @dart=2.9报错:语言版本需>=2.12.0,Dart3.0.3无法运行

解决Dart 3.0.3中// @dart=2.9导致的语言版本错误

核心原因

Dart 2.12及以上版本强制启用空安全(null safety),而// @dart=2.9是强制让代码以非空安全的旧版本模式运行。Dart 3.x已完全移除对2.9及以下非空安全模式的支持,因此该注释会直接触发版本不兼容错误。

解决步骤

  • 移除旧版本注释:全局搜索项目中所有// @dart=2.9或// @dart = 2.9注释,直接删除。Dart 3.x不再允许指定低于2.12的语言版本。
  • 迁移代码至空安全规范:
    • 给可能为null的变量添加?标记,比如String? userName而非String userName
    • 确定变量非空时用!断言,比如print(userName!)
    • 用late关键字初始化延迟变量,或给变量设置默认值避免空引用
  • 更新依赖包:
    运行flutter pub outdated查看依赖的空安全支持状态,将所有依赖更新到支持空安全的版本(通常版本号≥2.0.0的包已适配),再执行flutter pub get重新安装依赖。
  • 验证项目配置:
    检查pubspec.yaml中的environment节点,确保Dart版本范围兼容3.x,示例:
    environment:
      sdk: '>=2.12.0 <4.0.0'
    

特殊情况处理

若存在暂未支持空安全的第三方依赖,可临时用dependency_overrides强制适配,但建议尽快替换为已兼容的依赖:

dependency_overrides:
  outdated_package: ^1.0.0-nullsafety.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:52:05