flutter doctor を実行して、以下のようなワーニングが出たときの(私の)対処法です。
基本的にはワーニングメッセージ通りに実行すれば良いはずですが、私はメッセージ通りに実行してもうまくいかず、ちょっと躓いたのでメモしておきます。
$ flutter doctor
Running "flutter pub get" in flutter_tools...
Resolving dependencies in flutter/packages/flutter_tools... (8.4s)
_fe_analyzer_shared 50.0.0 (58.0.0 available)
...
Got dependencies in flutter/packages/flutter_tools!
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.11, on macOS 12.6 21G115 darwin-arm64, locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.77.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
対処法
Run path/to/sdkmanager --install "cmdline-tools;latest"
Step1
ワーニングで指定されたコマンドを実行して、Androidコマンドラインツールをインストールします。(これですんなり成功すれば、以降は不要)
$ find ~/Library/Android/sdk -name sdkmanager
→[/path/to/sdkmanager]のパスを取得
$ /path/to/sdkmanager --install "cmdline-tools;latest”
Step2
上記Step1でコマンドラインツールのインストールに失敗した時
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
対処法として、以下の対応案あり
- 対応案1. メッセージ通りJavaをインストールする(→私の環境が悪かったのか、何故かうまくいかなかった)
- 対応案2. 最新のコマンドラインツールをAndroidStudioの設定からインストールする(→私はこれで成功した)
- 対応案3. その他諸々
Step3
今回は対応案2. 最新のコマンドラインツールをAndroidStudioの設定からインストールします。
インストール手順
- AndroidStudioの設定から「Android SDK」を開く
- Android Studio > Preference > Appearance & Behavior > System Settings > Android SDK > SDK Tools
- 「Android SDK Command-line Tools(latest)」にチェックを入れる
- 「Apply」を選択してインストール
これで最新のコマンドラインツールはインストールされているはず。
つまり、path/to/sdkmanager --install "cmdline-tools;latest"
は完了したことになります。
Run flutter doctor --android-licenses
to accept the SDK licenses.
こちらはメッセージ通りにコマンドを実行すれば、特に問題なく終わりました。
$ flutter doctor --android-licenses
上記コマンドを実行すると何度かAccept? (y/N):
と聞かれるのでひたすらy
を入力して最後まで読めばOKです。
最後にもう一度 flutter doctor
これでワーニングは解消できたので、最後にもう一度 flutter doctor を実行して、以下のようになれば完了です。
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.11, on macOS 12.6 21G115 darwin-arm64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.77.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
• No issues found!