「pubspec lock Duplicate mapping key」のデバッグ方法【Flutter】

はじめまして、ますみです！

[![自己紹介.png](https://www.umi-mori.jp/wp-content/uploads/2023/02/introduction_banner_2-2048x533.png)](https://bit.ly/banner_intro_masumi_creator_qiita)


# バグ内容
Flutter(dart)のプロジェクトをGithubなどからクローンをしたり、pullしたりした後に`flutter pub get`と入力したところ、以下のように`pubspec.lock: Duplicate mapping key.`というエラーが出てくることがあります。

```dart:error.txt
$ flutter pub get
Error on line 53, column 3 of pubspec.lock: Duplicate mapping key.
   ╷
53 │   collection:
   │   ^^^^^^^^^^
   ╵
---- Log transcript ----
FINE: Pub 2.8.4
MSG : Resolving dependencies...
ERR : Error on line 53, column 3 of pubspec.lock: Duplicate mapping key.
    |    ╷
    | 53 │   collection:
    |    │   ^^^^^^^^^^
    |    ╵
FINE: Exception type: YamlException
FINE: package:yaml/src/loader.dart 165:9          Loader._loadMapping
    | package:yaml/src/loader.dart 86:16          Loader._loadNode
    | package:yaml/src/loader.dart 163:19         Loader._loadMapping
    | package:yaml/src/loader.dart 86:16          Loader._loadNode
    | package:yaml/src/loader.dart 62:20          Loader._loadDocument
    | package:yaml/src/loader.dart 54:20          Loader.load
    | package:yaml/yaml.dart 51:25                loadYamlDocument
    | package:yaml/yaml.dart 42:5                 loadYamlNode
    | package:pub/src/lock_file.dart 100:18       LockFile._parse
    | package:pub/src/lock_file.dart 82:21        new LockFile.load
    | package:pub/src/entrypoint.dart 96:28       Entrypoint.lockFile
    | package:pub/src/entrypoint.dart 222:19      Entrypoint.acquireDependencies.<fn>
    | package:pub/src/log.dart 394:18             progress
    | package:pub/src/entrypoint.dart 216:24      Entrypoint.acquireDependencies
    | package:pub/src/command/get.dart 46:23      GetCommand.run
    | package:args/command_runner.dart 197:27     CommandRunner.runCommand
    | package:pub/src/command_runner.dart 191:39  PubCommandRunner.runCommand.<fn>
    | dart:async                                  new Future.sync
    | package:pub/src/utils.dart 113:12           captureErrors.wrappedCallback
    | package:stack_trace                         Chain.capture
    | package:pub/src/utils.dart 126:11           captureErrors
    | package:pub/src/command_runner.dart 191:13  PubCommandRunner.runCommand
    | ===== asynchronous gap ===========================
    | dart:async                                  Future.catchError
    | package:pub/src/utils.dart 113:52           captureErrors.wrappedCallback
    | package:stack_trace                         Chain.capture
    | package:pub/src/utils.dart 126:11           captureErrors
    | package:pub/src/command_runner.dart 191:13  PubCommandRunner.runCommand
---- End log transcript ----
Running "flutter pub get" in app...
pub get failed (65; ---- End log transcript ----)
```

## デバッグ方法
Stackoverflowなどでは、`pubspec.yaml`を編集する方法などがありますが、解決しないことがあります。
`flutter upgrade`を行い、バージョンをあげても直りません。

そのため、**`pubspec.lock`を削除して、`flutter pub get`と再度コマンドを打つ**と、無事getすることができました。

```
$ flutter pub get
Running "flutter pub get" in app...                4.4s
```

少し無理矢理ではありますが、tipsとしては有効かと思い、シェアしました。

# 最後に
最後まで読んでくださり、ありがとうございました！
いかがだったでしょうか？

この記事を通して、少しでもあなたの学びに役立てば幸いです！

:::note info
【仕事の相談はこちら】
お仕事の相談のある方は、下記のフォームよりお気軽にご相談ください。

[問い合わせフォームはこちら](https://forms.gle/G5g1SJ7BBZw7oXYA7)

もしもメールでの問い合わせの方がよろしければ、下記のメールアドレスへご連絡ください。

info*galirage.com（*を@に変えてご送付ください）

🎁 「生成AI活用の無料相談券」もしくは「生成AIの社内ガイドライン（無料PDF）」を『公式LINE』で配布中 🎁
『生成AIを業務に活用したいけど、どうしたらいいかわからない』といった声を多くいただきます。

Galirageでは公式LINEにて、チャットやオンライン会議で「完全個別の生成AI活用無料相談会」を実施しております！
（期間限定で実施しているため、ご興味ある方はお早めに以下のLINE公式アカウントをご登録ください^^）
https://lin.ee/rvz6lMN

※ 予告なく、キャンペーンを終了する可能性がございますが、ご了承ください。

【業務内容】
具体的には、以下のお仕事を中心に受け付けております！（[詳しくはこちら](https://galirage.notion.site/Galirage-AI-c2f3945fafb0433d8d2fd03e56927fd8)）
1. 受託開発（例：生成AIを使った社内システムの開発）
2. コンサルティング（例：技術戦略のアドバイス）
3. 講演（例：社内研修、イベント登壇）

※ 特に「生成AIを使ったシステム開発のご依頼」が多く、ご好評いただいております。

【これまでの相談事例】
以下のようなご相談が多くあります。

🔑 機密情報を漏洩させないための、生成AIのシステム構築をお願いしたい。
🤖 自社データを用いたFAQチャットボットの作り方を知りたい。
💡 ChatGPTを、自分たちの事業にどのように活かせるか、アドバイスやアイデアが欲しい。
:::
# おまけ
エンジニアの仲間（データサイエンティストも含む）を増やしたいため、公式LINEを始めました🎉

「**一緒に仕事をしてくれる方**」「**友だちとして仲良くしてくれる方**」は、友だち追加をしていただけますと嬉しいです！（仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆）

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました！

友だち追加後に、アンケートに回答してくれた方へ「**エンジニア図鑑（職種20選）**」のPDFをお送りします◎

https://lin.ee/hFUN4TL

[![](https://www.umi-mori.jp/wp-content/uploads/2023/10/line_banner_v2.png)](https://lin.ee/hFUN4TL)