🐛
Flutterでintl_utilsを使っていて、突然多言語化用Dartファイルが生成できなくなった時の対処方法
起きたことと原因
Flutterを多言語に対応する場合、intl_utils
を使うと便利です。
しかし、主にfvm
を採用したプロジェクトでintl_utils
を使っていて、次のようなエラーが発生することがあります。
/Users/hoge/fvm/versions/3.3.2/bin/flutter --no-color pub global run intl_utils:generate
intl_utils as globally activated doesn't support Dart 2.18.1, try: flutter pub global activate intl_utils
pub finished with exit code 65
Process finished with exit code 65
上記エラーが発生するのは、次の理由からです。
- (
fvm
で)ローカルにインストールしたFlutterと、グローバルにインストールしたFlutterとでバージョンが異なり - また、グローバルにインストールした
intl_utils
と、ローカルにインストールしたFlutterとの間で互換性がないため
対処方法
次の「対処方法1.」「対処方法2.」いずれかの方法で、上記エラーが解消します。
対処方法1. グローバルにインストールしたFlutterで、多言語化用Dartファイルを生成する
ローカルでのプロジェクトで、次コマンドを実行することで、多言語化用Dartファイルを生成できます。
flutter pub global run intl_utils:generate
対処方法2. グローバルにインストールしたFlutterのバージョンを、ローカルにインストールしたFlutterのバージョンに合わせる
また、グローバルにインストールしたFlutterのバージョンを、ローカルにインストールしたFlutterのバージョンに合わせることで、再度多言語化用Dartファイルを自動で生成できるようになります。
fvm global <ローカルにインストールしたFlutterのバージョン>
flutter pub global activate intl_utils
(あるいは逆に、ローカルにインストールしたFlutterのバージョンを、グローバルにインストールしたFlutterのバージョンに合わせても、再度多言語化用Dartファイルを自動で生成できるようになります)
参考文献
Discussion