Flutter Pub:解析块映射时需要一个键。小路:
Posted
技术标签:
【中文标题】Flutter Pub:解析块映射时需要一个键。小路:【英文标题】:Flutter Pub: Expected a key while parsing a block mapping. path: 【发布时间】:2018-10-14 18:06:54 【问题描述】:我正在使用 JSON 文件并在 Pubspec.ymal
中注册,但显示错误,并且当我使用图像并注册它时,也会发生相同的错误。可能里面有格式错误,但不知道是什么问题。这是我关注的doc。
pubspec.yaml 第 29 行第 5 列出错:解析块映射时需要一个键。 资产: ^
这是我的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
【问题讨论】:
看看here 第 29 行是哪一行? 试试yamllint.comuses-material-design
应与assets
垂直对齐
【参考方案1】:
在 pubspec.yaml 中取消注释 assets
和 image link sample
后遇到同样的问题。
如果您像我一样遇到assets
的问题。确保它以相同的列开始(以与uses-material-design
等预定义属性相同的缩进开始)。在我的情况下取消注释后,它们的位置不同。
之后,问题就解决了。
【讨论】:
【参考方案2】:如果images
文件夹在lib
文件夹旁边,则需要./
,因为它与pubspec.yaml
不在同一级别,那么,在pubspec.yaml
中取消注释:
assets:
- ./images/ //Watch for spaces and indentation!!
现在你可以使用它们了:
Image.asset(
'../images/nature.png',
width: 600,
height: 240,
fit: BoxFit.cover,
),
【讨论】:
【参考方案3】:你必须小心 yml 文件中的空间
【讨论】:
【参考方案4】:**第 46 行第 4 列的错误:解析块映射时需要一个键。资产:
颤振:使用材料设计:真实资产:-资产/dhaka.jpg**
确保在取消注释该行时请检查缩进。 如果缩进错误,就会出错。 流淌着这个形象。 编码快乐!!!
【讨论】:
【参考方案5】:在我的例子中,uses-material-design
缩进被破坏了。我在它前面多放了 1(一)个空间,效果很好。
【讨论】:
【参考方案6】:问题与缩进间距有关,请检查您的间距,它应该可以正常工作 字体: - 系列:CM 无衬线字体 字体: - 资产:资产/字体/cm_sans_serif_2012.ttf
【讨论】:
【参考方案7】:移除 cmets,原始,默认生成的 pubspec.yaml 看起来像这样
flutter:
uses-material-design: true
assets:
- images/abc.jpg
但它是无效的。它不起作用。应该是:
flutter:
uses-material-design: true
assets:
- images/abc.jpg
重要提示:YAML 中的空格很重要
【讨论】:
【参考方案8】:正如@Baftek
提到的那样,只需在 uses-material-design:true 之前缩进,然后按Ctrl+Alt+l
(Intellij 或 android Studio)重新格式化文件。
【讨论】:
【参考方案9】:空格在 .yaml 文件中非常重要。
只需根据键和值确保您的代码在同一行(垂直)。
或者
如果您仍然感到困惑,请观看这个简单的视频。它将帮助您轻松解决问题。
https://imgur.com/gallery/ngoXwUe
【讨论】:
【参考方案10】:这是因为你的代码有缩进。uses-material-design
应该与assets:
垂直位于同一行。
uses-material-design: true
assets:
- images/picture.png
【讨论】:
缩进很重要,因此请确保两者处于同一水平。左边的空间应该是一样的。 @Dan 感谢您的回答。完美的答案。【参考方案11】:请确保我们没有不需要的空格,因为yaml 结构会敏感地考虑空格。请参阅文档以获取更多信息,如下链接,https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
【讨论】:
【参考方案12】:在我的情况下,图像太大而无法加载,减少了图像的尺寸。
【讨论】:
您可能需要添加更多详细信息,以帮助未来的人阅读您的答案。【参考方案13】:第 29 行第 4 列出错:解析块时需要一个键 映射。资产:
颤振:使用材料设计:真实资产: - 资产/图像/image.jpg
就我而言,我只是在uses-material-design: true
前面添加了#
试试下面的代码
flutter:
# uses-material-design: true
assets:
- assets/images/image.jpg
它工作正常。
【讨论】:
这可能是因为uses-material-design: true
的缩进错误。如果你想使用材料,评论它不是一个真正的选择。
我评论了uses-material-design
,然后做了Packages get
,然后取消了相同的评论,以便在模拟器上重新运行。工作正常【参考方案14】:
空格在 YAML 中很重要
assets
缩进太远
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
assets:
- loadjson/person.json
【讨论】:
yamllint.com 下面建议的问题可能是跟踪 yaml 文件中各种问题的好建议。以上是关于Flutter Pub:解析块映射时需要一个键。小路:的主要内容,如果未能解决你的问题,请参考以下文章
yaml.parser.ParserError:解析块映射时