Posted at

Flutter Web: webdev could not run for this project.

今日、突如として webdev build を実行すると webdev could not run for this project. とエラー表示され、ビルドできなくなりました。

こういう原因らしいです。

This version of webdev does not support the `build_daemon` protocol used by your version of `build_runner`.

A newer version of webdev is available which supports your version of the `build_daemon`. Please update.

何の事かわかりません(涙目

たぶん、 pub get やれと言われ、無意識にやってこうなったのだと思います。


対策

pubspec.yamldev_dependencies

build_runner: 1.6.1

build_daemon: 1.1.0

にバージョンを戻すよう設定したら webdev build に成功するようになりました。

versions.png


くわしい状況

エラーの補足に Please update. とあるので、極力アップデートする方向でなんとかならないか調べていたのですが、うまくいきませんでした。

新規プロジェクトでHelloWorld的なやつも作ったのですが、それもビルドに失敗するようになっていました。

(どうやら私のクソコードが原因では無いようです)

その時の pubspec.yamldev_dependencies の内容。

build_daemon は特に指定していませんでした。

dev_dependencies:

build_runner: ^1.4.0
build_web_compilers: ^2.0.0
pedantic: ^1.0.0
json_serializable: ^2.0.0

この記述だと

build_runner: 1.6.4

build_daemon: 2.0.0

となってしまうようです。

pubspec.lock の内容

  build_runner:

dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.4"

build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"

バージョンを上げる方向で調べていて埒があかなかったので、輝いていたアノ頃を思い出しながら、ぽちぽちバージョンを戻していきました。

build_runner
build_daemon
結果
原因

1.6.4
2.0.0
NG
ビルドエラー

1.6.3
2.0.0
NG
ビルドエラー

1.6.2
2.0.0
NG
ビルドエラー

1.6.1
2.0.0
NG
packageのバージョンが合わない

1.6.4
1.1.0
NG
packageのバージョンが合わない

1.6.3
1.1.0
NG
packageのバージョンが合わない

1.6.2
1.1.0
NG
packageのバージョンが合わない

1.6.1
1.1.0
OK