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

Flutter编译报错:DateTime类无'zyear' getter,构建失败如何解决?

错误产生原因
  • 核心冲突为intl 0.16.1版本与高版本Flutter/Dart SDK不兼容:Dart 2.12及以上版本已经正式移除了dart:core中DateTime类的废弃属性zyear,但intl 0.16.1的内部源码仍在调用该属性,编译时直接抛出getter 'zyear' isn't defined的语法错误。
  • 后续的构建失败属于连锁报错,是Flutter编译任务检测到语法错误后返回非零退出码导致的,根源仍为intl包的版本兼容问题。
修复方案

方案1:升级intl依赖版本(推荐)

如果你的项目直接依赖了intl包,直接修改根目录下的pubspec.yaml文件,将intl的版本约束升级到0.17.0及以上即可:

dependencies:
  # 可替换为当前最新的稳定版
  intl: ^0.18.1

修改完成后执行flutter pub get重新拉取依赖,再启动编译即可解决问题。

方案2:强制覆盖intl版本

如果你的项目没有直接依赖intl,是依赖的其他第三方库引入了0.16.1版本的intl,可在pubspec.yaml中添加依赖覆盖配置,强制全项目使用兼容的intl版本:

dependency_overrides:
  intl: ^0.17.0

执行flutter pub get后重新编译即可。

方案3:降级Flutter SDK(不推荐)

如果项目历史约束无法升级intl版本,可将Flutter SDK降级到2.0.0以下的旧版本,该版本配套的Dart SDK仍保留DateTime.zyear属性,可兼容intl 0.16.1版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:36:05