先日3月3日のひなまつりの日に、Flutter(フラッター)のバージョン2.0が華々しく安定版としてリリースされましたが、まだリリース直後ということもあってか、Flutter1.xで動いていたプロジェクトが突如動かなくなったりとか、導入当初によくある混乱が色々あるようです。
その中で、Flutterアプリを多言語対応するために使うSDK直属のパッケージである「flutter_localizations
」とFirebaseの認証機能である「firebase_auth」を組み合わせたプロジェクトをFlutter2.0で動かそうとするとこんなエラーが出てしまうことがあるようです。
この例では「flutter_localizations」と「firebase_auth」のNull Safety対応一歩手前のバージョン(0.20)間の依存関係が解消できていないというエラーが出ていますが、その理由は上記エラーコードを突き詰めていくと
- 「flutter_localizations」で使っている(依存している)「intl」パッケージのバージョンが0.17.0であるのに対し
- 「firebase_auth」で使っている「intl」パッケージのバージョンが0.16.1であるため
となっているので、以下の要領でpubspe.yamlファイルで「intl」パッケージのバージョンを上書き(override)してやると解決します。
dependency_overrides: intl: ^0.17.0-nullsafety.2
(詳しくは、以下の動画で解説していますので、よろしければ御覧ください)