# flutter build_runnerが動かなかったときの対処法

Flutterのバージョン

Flutter 1.20.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 2ae34518b8 (3 weeks ago) • 2020-08-05 19:53:19 -0700
Engine • revision c8e3b94853
Tools • Dart 2.9.0

# Flutterの状態管理

状態管理は下記を使うと良いよと教えてもらったので。
state_notifier と freezed を使って、Flutterのカウンターアプリをつくるよ
こちらの記事を参考にライブラリをインストールしていく。

「state_notifier」は、providerと組み合わせて使い、Widgetから「状態」と「ロジック」を簡単に分離し&通知することができるライブラリ>>です。Widgetの状態管理を楽にしてくれたり、無駄なリビルドを抑制したりしてくれます。

「freezed」は、State(状態)を「データを保持するだけのクラス」として変更不可(イミュータブル)なクラスとして表現することができます。

状態とロジックを分割出来るのは良さそう。

# pubspec.yamlに追記


dependencies:
  flutter:
    sdk: flutter
  provider: ^4.1.0-dev
  state_notifier: ^0.4.0
  flutter_state_notifier: ^0.3.0
  freezed_annotation:

dev_dependencies:
  flutter_test:
    sdk: flutter
  json_serializable:
  build_runner:
  freezed:

追記をしたらターミナルで下記を実行する。

$ flutter pub get

してから

$ flutter pub run build_runner build

が...

延々にエラーが出て処理が終わる気配がない...Bad Statusとか書いてあるし、正常に動いてなさそう。

# 解決策

https://minpro.net/bad-state-unexpected-diagnostics

まんまこれだったので
















 
 

dependencies:
  flutter:
    sdk: flutter
  provider: ^4.1.0-dev
  state_notifier: ^0.4.0
  flutter_state_notifier: ^0.3.0
  freezed_annotation:

dev_dependencies:
  flutter_test:
    sdk: flutter
  json_serializable:
  build_runner:
  freezed:

dependency_overrides:
  analyzer: '0.39.14'

を追記して、

$ flutter pub get
$ flutter pub run build_runner build

これでbuild_runnerが動くようになった(flutter pub get実行度にwarningは出る)