はじめに
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)
このエラーメッセージは、package1
とpackage2
のビルドが失敗したことを示しており、それぞれのエラーステータスコードは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)