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

Flutter自定义字体报错:pubspec.yaml解析块映射时预期键

解决Flutter自定义字体的YAML解析错误

问题原因

这个报错是YAML格式解析失败导致的,核心原因是缩进不规范或节点层级错误——YAML对缩进要求严格,必须用统一的空格(推荐2个),且子节点要正确嵌套在父节点下,不能混合Tab和空格。

修正后的pubspec.yaml配置

你的字体配置必须嵌套在flutter节点下,确保所有层级缩进一致,修正后的完整相关代码如下:

flutter:
  uses-material-design: true

  # 自定义字体配置
  fonts:
    - family: OpenSans
      fonts:
        - asset: fonts/OpenSans-Regular.ttf
        - asset: fonts/OpenSans-Bold.ttf
          weight: 700
    - family: Quicksand
      fonts:
        - asset: fonts/Quicksand-Regular.ttf
        - asset: fonts/Quicksand-Bold.ttf
          weight: 700

关键检查项

  • 确认fonts是flutter的直接子节点,缩进和uses-material-design完全一致(2个空格)
  • 所有层级缩进只用2个空格,绝对不能用Tab键(YAML不兼容Tab缩进)
  • 定位到报错的第78行,检查是否存在多余空格、缺失的键名,或注释与代码的缩进冲突
  • 验证字体文件路径:fonts/文件夹需和pubspec.yaml同级,文件名拼写完全匹配(区分大小写)

验证步骤

  1. 保存修改后的pubspec.yaml,执行flutter pub get刷新依赖
  2. 重启IDE(缓存可能导致解析异常)
  3. 测试字体是否生效:
Text('测试自定义字体', style: TextStyle(fontFamily: 'OpenSans', fontWeight: FontWeight.bold))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:50:01