Flutter Pub:解析块映射时需要一个键。路径:

时间:2018-05-04 09:35:54

标签: android path mapping flutter dart-pub

我在Stackoverflow上搜索了它,但是关于颤动,我找不到任何相关的解决方案,herehere可能是同一个问题,但它们不是为了颤动。

我正在使用JSON文件并在Pubspec.ymal中注册但显示错误,而且当我使用图像并注册它时,也会发生同样的错误。也许它有一个格式错误,但我不知道它有什么问题。这是我跟随的documentation

  

pubspec.yaml第29行第29行出错:解析块映射时需要一个键。   的资产:       的 ^

这是我的pubspec.yaml文件

name: jsondata description: A new Flutter application.

  dependencies:  

  flutter:

  sdk: flutter

  cupertino_icons: ^0.1.0

  dev_dependencies:   

 flutter_test:

      sdk: flutter

    flutter:

    uses-material-design: true

      assets:

       - loadjson/person.json

enter image description here

13 个答案:

答案 0 :(得分:73)

空间在YAML中很重要

assets缩进太多了

flutter_test:
  sdk: flutter

flutter:
  uses-material-design: true
  assets:
    - loadjson/person.json

答案 1 :(得分:3)

  

第29行第4列错误:解析块时需要键   映射。资产:

     

颤振:用途-材料-设计:真实资产:       -资产/图片/图片.jpg

就我而言,我只是在#前面添加了uses-material-design: true

尝试下面的代码

flutter:   

  # uses-material-design: true 

   assets: 
    - assets/images/image.jpg

工作正常。

答案 2 :(得分:1)

.yaml文件中的空格非常重要。

只需确保您的代码根据键和值在同一行上(垂直)即可。

如果您仍然感到困惑,请观看此简单视频。它可以帮助您轻松解决问题。

https://imgur.com/gallery/ngoXwUe

答案 3 :(得分:1)

默认情况下,pubspec.yaml生成的原始注释已删除,

flutter:
  uses-material-design: true
   assets:
    - images/abc.jpg

但这不是有效的。它不起作用。应该是:

flutter:
  uses-material-design: true
  assets:
    - images/abc.jpg

重要提示:YAML中空格很重要

答案 4 :(得分:1)

你必须小心 yml 文件中的空间

答案 5 :(得分:0)

就我而言,图片太大而无法加载,从而减小了图片的尺寸。

答案 6 :(得分:0)

请确保我们没有不需要的空白,因为 yaml结构敏感地考虑了空白。请参考以下链接获取更多信息的文档,
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html

答案 7 :(得分:0)

这是因为您的代码缩进。uses-material-design应该与assets:垂直在同一行。

 uses-material-design: true

 assets:
   - images/picture.png

答案 8 :(得分:0)

@Baftek所述,在 uses-material-design:true 之前缩进,然后按Ctrl+Alt+l(Intellij或Android Studio)重新格式化文件。

答案 9 :(得分:0)

问题与缩进间距有关,请检查间距,它应该可以正常工作
字体: -家庭:CM Sans Serif 字体: -资产:assets / fonts / cm_sans_serif_2012.ttf

答案 10 :(得分:0)

**第46行第4列错误:解析块映射时需要键。资产:

颤振:用途-材料-设计:真实资产:-assess / dhaka.jpg **

确保取消注释该行时,请检查缩进。 如果缩进是错误的,那就是错误。 流动此图像。 祝您编码愉快!

enter image description here

答案 11 :(得分:0)

如果 images 文件夹在 lib 文件夹旁边,则需要一个 ./,因为它与 pubspec.yaml 不在同一级别,那么,在 {{ 1}} 取消注释:

pubspec.yaml

现在您可以使用它们了:

assets:
- ./images/   //Watch for spaces and indentation!!

答案 12 :(得分:0)

pubspec.yaml 中取消注释 assetsimage link sample 后遇到同样的问题。

如果您遇到 assets 的问题,就像我一样。确保它以相同的列开头(以与预定义的属性(如 uses-material-design)相同的缩进开头)。在我的案例中取消注释后,它们的位置不同。

之后,问题就解决了。