进行软件包获取时出现Flutter“此处不允许映射值”错误

时间:2019-02-18 19:27:08

标签: dart flutter yaml

我很确定这是YAML语法错误,但找不到。

我最近在项目(Manrope)中添加了新字体,现在我的Flutter packages get引发错误。在添加字体之前,它工作正常。

这是pubspec.yaml的相关部分:

flutter:

  uses-material-design: true

  assets:
  - assets/

  fonts:
  - family: Hanken Grotesk
    fonts:
    - asset: fonts/HankenGrotesk-Regular.otf
    - asset: fonts/HankenGrotesk-Bold.otf
      weight: 700
    - asset: fonts/HankenGrotesk-SemiBold.otf
      weight: 600
    - asset: fonts/HankenGrotesk-Medium.otf
      weight: 500
    - asset: fonts/HankenGrotesk-Light.otf
      weight: 300
    - asset: fonts/HankenGrotesk-ExtraLight.otf
      weight: 200

  - family: Manrope
    fonts:
    - asset: fonts/manrope-regular.otf
    - asset: fonts/manrope-bold.otf
      weight: 700
    - asset: fonts/manrope-semibold.otf
      weight: 600
    - asset: fonts/manrope-medium.otf
      weight: 500

这是我收到的错误消息:

Error on line 65, column 12 of pubspec.yaml: Mapping values are not allowed here. Did you miss a colon earlier?
      fonts:
           ^

pub get failed (65)

3 个答案:

答案 0 :(得分:0)

由于介绍的是相关部分,因此很难精确定位第65行,因为示例的时间不长。

我非常确定该错误不在所提出的部分中。由于该错误是由第12列中的值指示符(:引起的,并且在您的样本中,fonts之后的指示符位于位置10。

因此,请搜索一行fonts缩进六个位置而不是您所包含的示例中的四个位置的行,这可能是由于缩进过度导致的错误。

(通常,如果您无法减少问题的源代码,最好包含有问题的文件的全文)

答案 1 :(得分:0)

一个巧妙的技巧是JSON是YAML的子集,因此,如果您在弄清YAML缩进或语法时遇到困难,只需将其替换为JSON,即可进行n匹配混合。

答案 2 :(得分:0)

是的,你是对的。这是Yaml语法的问题。在Yaml中,代码是以类似于JSON的对象形式编写的,因此我们必须注意代码的缩进,每个对象要向其孩子返回2个空格。

enter image description here