flutter upgradeでFlutterのバージョンを上げて、flutter runでアプリを実行した際にエラーが発生しました。
パッケージの依存関係でエラーを起こしています。
このコンフリクトの解決方法を記載します。
開発環境
- MacBook Pro (macOS Catalina バージョン10.15.1)
- Flutter 1.12.13+hotfix.5 channel stable
- Dart 2.7.0
原因
flutter upgradeでFlutterのバージョンを上げました。
↓
flutter runした際に以下のエラーが発生
intl 0.16.0が必要になったため、pubspec.yamlにintl: ^0.16.0を追記して flutter pub get を実行しました。
すると下記のエラーが発生。
Flutterのバージョンをアップグレードしたことによって、intl 0.16.0が必要になったが、datetime_picker_formfieldはintl ^0.15.8を必要としているためエラーが発生しているようです。
解決策:pubspec.yamlにdependency_overridesを記載
pubspec.yamlに以下のように追記します。
dependency_overridesを使用することで特定のバージョンの使用を強制して、依存関係のコンフリクトを解決する事ができます。
※この記載は、パッケージのサポート範囲外のバージョンや、予期しない動作をするパッケージのローカルコピーを指定したりするとアプリケーションが破損する可能性があるため、慎重に使用する必要があります。
pubspec.yamlにdependency_overridesを記載して、flutter pub getを実行します。
その後flutter runでアプリを実行します。
無事実行する事ができました!
無理やり感はありますが、Flutterのバージョンが上がってすぐだと外部パッケージが対応していないことも多いので応急処置的に使用するのはアリかと思います。
コメント