Help us understand the problem. What is going on with this article?

FlutterでSDKインストールの際にエラー Expected a key while parsing a block mapping.

はじめに

モバイルアプリ開発初心者でFlutter学習中です。自分用メモとしても残しております。
Flutterでフォルダ内の画像を表示しようとpubspec.yamlを編集していました。

Flutterの画像表示方法はこちらのqiita記事が大変参考になりました。

エラーでパッケージ取得できない

assetsを追加してパッケージを取得しようとしたら以下のエラーが発生

Error detected in pubspec.yaml:
Error on line 45, column 4: Expected a key while parsing a block mapping.
   ╷
45 │    assets:
   │    ^
   ╵
Please correct the pubspec.yaml file at pubspec.yaml
Process finished with exit code 1

assetsが間違ってるっぽいけど、タイポでもなさそうなのでどうしてだろうと悩んでいたのですが、
エラーログをよく見るとcolumnって書かれていることに気がつきました。
なんで行だけじゃなく、列についても指摘されてるんだろう?

原因

こちらの記事が大変参考になりました。

原因はYAMLの文法エラーでした。
YAMLはインデントでデータ構造を表現するようで、今回はインデントが崩れていてエラーが出ていました。そのためエラーログではcolumnについても指摘してくれていたのですね。

新規Flutterプロジェクト作成で生成されるpubspec.yamlではassetsが自動でコメントアウトされており、当初はコメントアウトを外しただけでした。
その場合インデントが崩れている状態になってしまっていたので、揃えてあげる必要がありました。

NG(単純にコメントアウトを外したもの)

pubspec.yaml
# The following section is specific to 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:
    - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

OK(インデント揃えたもの)

pubspec.yaml
# The following section is specific to 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:
    - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

こんな簡単なエラーだったとは!
でもおかげでYAMLも少し知れて、いい勉強になりました!

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした