【Flutter】Could not find a file named “pubspec.yaml” in … の解決まで

Dart

概要

どうも、@daiki1003です!

ある日、

$ flutter pub run build_runner build --delete-conflicting-outputs

コマンドが以下のエラーを吐くようになりました。

Could not find a file named "pubspec.yaml" in "/path/to/.asdf/installs/flutter/1.22.3-stable/.pub-cache/hosted/pub.dartlang.org/build_daemon-2.1.6".

この記事では、上記エラーを解決するまでに行った事を備忘録的に残していく記事となります。

asdfって何?って思った方もいるかと思いますが、
後ほど記事化したいと思います。

実行環境

Mac OS Bi Sur 11.2
MacBook Pro (13インチ M-1, 2020)
Flutter: flutter-1.22.3-stable (※asdf使用)

Flutterの再インストール

$ asdf uninstall flutter 1.22.3-stable
$ asdf install (.tool-versionがあるフォルダにて)
$ asdf reshim

全然だめでした。

pubspec.lockをいじる

参照先となっている /path/to/.asdf/installs/flutter/1.22.3-stable/.pub-cache/hosted/pub.dartlang.org/を見てみると build_daemon-2.1.4 がありました。

では、そもそも build_daemon-2.1.6を指定してるのはどこだ?と探してみるとpubspec.lockでした。
なので、一時的に2.1.62.1.4に変更してみます。

すると、build_daemonではなくbuild_runner_coreに変わった!
この調子で直るかなと思い気や、cached_network_imageが出てきたところで少し雲行きが怪しくなってきました。

Could not find a file named "pubspec.yaml" in "/path/to/.asdf/installs/flutter/1.22.3-stable/.pub-cache/hosted/pub.dartlang.org/cached_network_image-2.5.0".

と言われているのですが、

・既に2.5.0は指定されている
/path/to/.asdf/installs/flutter/1.22.3-stable/.pub-cache/hosted/pub.dartlang.org/にはない

と言う状況でした。

そして、これは探してみると$HOME/.pub-cache/hosted/pub.dartlang.org/にありました。

analyzerのバージョンを変えてみる

// before
analyzer: 0.39.17
// after
analyzer: 0.40.2

エラーは

Could not find a file named "pubspec.yaml" in "/path/to/.asdf/installs/flutter/1.22.3-stable/.pub-cache/hosted/pub.dartlang.org/_fe_analyzer_shared-9.0.0".

に変更。

パッケージのアップグレード

$ flutter packages upgrade

【解決】pubspec.lockを削除し再インストール

その後、 pubspec.lockを削除し、flutter pub getコマンドを実行することで
無事解決しました!!

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非@daiki1003のフォローお願いします♪

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました