前言
在Flutter开发中,经常会遇到一些稀奇古怪的的报错,比如版本更新之后会报错、文件没有导入会报错、第三方插件版本不一致的报错等等,而且最近几年Flutter不断完善和更新的速度越来越快,这就需要Flutter相关的开发者时刻保持不断学习的心态,来应对在Flutter开发中遇到的各种突发情况。本篇博文就来分享一下关于Flutter开发中运行Flutter项目之后报错Error detected in pubspec.yaml:…的解决方法,记录一下,方便后期查阅使用。
报错提示
在终端中运行flutter run命令之后,项目控制台报错,具体报错信息提示如下所示:
Performing hot reload…
Error detected in pub spec.yaml:
Error on line 44, column 4: Expected a key while parsing a block mapping
Error detected in pub spec.yaml:
Error on line 44, column 4: Expected a key while parsing a block mapping.
╷
44 │ assets:
│ ^
╵
分析
虽然终端提示的报错这么多,但是其实是同一个错误引起的,由于在flutter中导入package的时候,编辑器导入的第三方库没有和默认的sdk:flutter对齐保持在同一列位置,而引起格式错误,造成不能正常执行。直接原因就是在dart语言中,pubspec.yaml 文件对格式要求非常严格,如冒号后面必须有空格,且必须要求格式对齐保持在一列的位置。
解决方法
通过上面错误日志的提示就可以知道错误的位置,而且经过分析也可以知道在pubspec.yaml 文件的格式写法。
1、直接打开pubspec.yaml 文件,然后找到报错的第44行,第4个位置,就是找到assets;
2、通过对比上下文的写法,可以看到的是assets相对flutter: 前面多了一个空格,那么直接把空格去掉,保存文件,具体修改的写法如下所示:
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets:
- assets/mine/3、重新编译运行项目,就没有再报错提示了,问题完美解决了。
注意:flutter的pubspec.yaml 文件对书写格式要求非常严格,相对于flutter: 一定要对齐,且冒号后面必须要加空格,要层次分明。
最后
通过上面介绍的关于Flutter开发中,运行Flutter项目之后报错Error detected in pubspec.yaml:…的解决方法步骤,以后再遇到类似因为权限不够更新失败的问题就迎刃而解了,尤其是对于刚接触Flutter开发不久的开发者来说,更应该掌握这种情况的解决方法,这里不再赘述。以上就是本章的全部内容,欢迎关注!