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

使用Dart 3新特性时Flutter Gradle编译报错,如何修复?

解决Dart 3模式匹配导致的编译错误

你的编译错误源于编译器未正确识别Dart 3的if-case模式匹配语法,尽管你的环境已升级到Dart 3.0.3。以下是两种可行的解决方法:

方法1:确保启用Dart 3语言版本

检查项目根目录的analysis_options.yaml文件,若存在强制旧语言版本的配置,修改为Dart 3.0:

analyzer:
  language:
    language_version: 3.0

若没有该文件或相关配置,直接跳过此步骤。

方法2:改用Switch表达式写法

if-case是Dart 3的特性,但改用switch表达式的模式匹配写法更稳妥,也符合Dart 3的最佳实践:

class PeakMean {
  final DateTime x;
  final num y;

  PeakMean(this.x, this.y);

  factory PeakMean.fromJson(Map<String, dynamic> json) {
    return switch (json) {
      {'DataSavedTime': final date, 'Value': final value} => 
          PeakMean(DateTime.parse(date), num.parse(value)),
      _ => throw const FormatException('Unexpected JSON format'),
    };
  }
}

额外检查

你的pubspec.yaml中>=3.0.0 <4.0.0的SDK约束是正确的,无需修改。若后续仍有问题,可执行flutter clean后重新编译项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:54:57