【Flutter】build_runnerが (with exit code 78)で失敗【解決済】

はじめに

Flutter開発で、build_runnerを使用した際に発生したエラーとその解決方法について解説します。

エラーメッセージの意味

Flutterのbuild_runnerを実行した際に、次のエラーメッセージが表示されました。

[     4.262s] $ melos exec
[     4.263s]   └> fvm flutter pub run build_runner build --delete-conflicting-outputs
[     4.263s]      └> FAILED (in 2 packages)
[     4.263s]         └> package1 (with exit code 78)
[     4.263s]         └> package2 (with exit code 78)

このエラーメッセージは、package1package2のビルドが失敗したことを示しており、それぞれのエラーステータスコードは78となっています。これは、依存関係の競合や古いパッケージバージョンが原因で発生することがあります。

fvmはFlutterのバージョン管理管理です。melosでモノレポのマルチプロジェクトを管理してます。

解決方法

--delete-conflicting-outputsがついてない場合、このオプションを付けるだけで解決するケースもあるみたいです。

しかし付けてありました。以下のコマンドを実行して依存関係を最新の状態に更新したら、解決しました。

fvm flutter pub upgrade

fvmを使用していない場合は、単にflutter pub upgradeを実行してください。このコマンドは、すべての依存関係を最新のバージョンにアップグレードし、依存関係の競合を解消します。これにより、ビルドエラーが解決されます、運が良ければ。
マルチプロジェクトのため、各プロジェクトのルートで実行しました。

まとめ

Flutterでbuild_runnerを使用する際に、依存関係の競合が原因でエラーが発生することがあります。この問題は、flutter pub upgradeコマンドを実行して依存関係を最新のバージョンにアップグレードすることで解決できます。同様のエラーメッセージが表示された場合は、まずこの方法を試してみてください。

参考

エラー全文

[     4.262s] $ melos exec
[     4.263s]   └> fvm flutter pub run build_runner build --delete-conflicting-outputs
[     4.263s]      └> FAILED (in 2 packages)
[     4.263s]         └> package1 (with exit code 78)
[     4.263s]         └> package2 (with exit code 78)