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

Flutter 3.7.0升级后执行build_runner命令出现参数无效错误

解决Flutter 3.7.0中build_runner报错「Invalid argument(s): name shouldn't end with a '.'」的问题

问题背景

运行命令 flutter packages pub run build_runner watch --delete-conflicting-outputs 时抛出「Invalid argument(s): name shouldn't end with a '.'」错误,异常来自logger.dart文件。该命令在Flutter 3.3.10版本下可正常执行,升级至3.7.0后出现此问题。

原因分析

Flutter 3.7.0配套的Dart SDK(通常为2.19.0及以上版本)对标识符、文件名的命名规范校验更加严格。旧版本SDK中允许的以.结尾的命名(如Logger实例的name参数、生成文件的路径/名称等),在新版本中触发了合法性校验,从而抛出错误。

解决方案

  1. 检查并修正logger.dart相关命名
    打开项目中的logger.dart文件(包括build_runner生成的相关代码),排查所有可能以.结尾的内容:

    • 手动编写的Logger配置中,是否设置了以.结尾的name参数
    • 类名、函数名、变量名等标识符是否存在以.结尾的情况
    • 如果是通过注解生成的代码,检查freezed、json_serializable等注解的配置项,是否生成了不符合规范的命名
  2. 清理旧生成文件后重新执行命令
    修正命名后,先清理旧的build_runner生成文件,再重新执行命令:

    flutter packages pub run build_runner clean
    flutter packages pub run build_runner watch --delete-conflicting-outputs
    
  3. 排查第三方logger包兼容性
    如果项目依赖第三方logger类包,可能是该包未适配新版本Dart的命名校验。尝试将该包升级至最新版本,若仍无法解决,可暂时锁定包版本至兼容Flutter 3.7.0的版本。

内容的提问来源于stack exchange,提问作者Halil Bulent Orhon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:10:24