flutterチュートリアルの外部パッケージ導入で詰まったときのメモ
flutterチュートリアルをしていたら、
https://flutter.ctrnost.com/tutorial/tutorial04/
外部パッケージの導入でつまづいたのでメモ
dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 english_words: ^3.1.0
ここで、
flutter packages get
してプロジェクトを実行すると
engliesh_wordsがnull-safetyでないというmigrateエラーがでたので
以下のサイトにて
https://zenn.dev/hirothings/scraps/294558ad228cb
flutter pub outdated --mode=null-safety
でアプリの依存パッケージが、null-safety対応しているか確認ができる
- [✗] 未対応
- [✓] null安全対応
dart pub upgrade --null-safety
で依存パッケージをNull-Safety版の最新にアップデートできるこのコマンドはpubspec.ymlを書き換える
とあったのでそれを参考に
(公式はこちら)
パッケージをnull safety版に移行
flutter pub outdated --mode=null-safety dart pub upgrade --null-safety
1行目のコマンドで
- [✗] 未対応
- [✓] null安全対応
パッケージがnull-safety対応していないものが表示されるので、
null安全対応のバージョンに移行したい
2行目のコマンドでそれらのパッケージをnull-safety版の最新にアップデート。
dart migrate
コマンドを打つと
というエラー
1. Set the lower SDK constraint (in pubspec.yaml) to a version before 2.12.
より、
dartのバージョンを2.12以前のものにする必要がある
dart —version
してdartのバージョンを確認してみると2.17.6だった
dartのバージョン変更方法を探した結果
dvmというバージョンマネージャーを見つけたのでそれを導入しようとしたが
Because pub global activate depends on dvm any which requires SDK version >=1.22.0 <2.0.0, version solving failed.
1.22.0~2.0.0までしか対応していないらしい
https://zenn.dev/riscait/articles/flutter-version-management
こちらのサイトよりFlutter SDKのバージョン管理ツールFVMを使って
プロジェクトごとにflutterのバージョンを変えることができるみたいなので
変更してみる。
こちらのflutter versionとdart versionの対応表を参考に
https://docs.flutter.dev/development/tools/sdk/releases
左端がflutter versionで、右端がdart version
dart 2.12.0に対応しているのはflutter 2.0.0らしい
プロジェクトルート直下で
fvm use 2.0.0
コマンドを入力し
このプロジェクトでflutter2.0.0を使うように変更
dartのバージョンファイルを書き換えてみる
C:\src\flutter\bin\cache\dart-sdk
私の場合ここにversionファイルがあるので
versionファイルをエディタで開いて
2.17.6だったのを2.12.0に変更
すると無事プロジェクトが実行できるようになりました
手順を思い出しながら書いたので抜けがあったり、エラーの画面がスクショできていない箇所があったりしますが参考になれば幸いです。