使用 flutter doctor
命令用于检查 flutter 相关工具的安装情况,如果都不缺,运行结果如下:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.4, on macOS 11.6 20G165 darwin-x64, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] Connected device (1 available)
[✓] HTTP Host Availability
然而第一次安装 flutter 往往会缺失其中几项,其中 Flutter、Android Studio、IntelliJ IDEA 在安装了相应工具后即可解决,本文将介绍其余几项条件缺失的解决方式。
1) Android toolchain
该条目有两个子条目,需要分别处理。
1.1) cmdline-tools component is missing
先尝试提示给的命令,注意path/to/sdkmanager
要替换成你的sdkmanager
安装路径:
path/to/sdkmanager --install "cmdline-tools;latest"
如果该命令执行失败,则可以通过 Android Studio 设置中的 SDK Tools 来安装。
1.2) Android license status unknown
需要先解决 cmdline-tools 的问题,然后按照提示运行如下代码,记得全部选y
:
flutter doctor --android-licenses
2) Chrome
找到 Chrome (其他版本如 Chromium 也行)可执行文件的路径,然后设置设置环境变量CHROME_EXECUTABLE
为该路径。
3) Connected device
(此处没有参考价值)在笔者解决了 Chrome 的问题后,该问题也顺带被解决了,想不通……
4) HTTP Host Availability
错误提示如下,分析可知是 maven.google.com 访问失败造成的:
HTTP host https://maven.google.com/ is not reachable. Reason: An error occurred while checking the HTTP host: Operation timed out
解决步骤:
- 打开
/【path to flutter sdk】/packages/flutter_tools/lib/src/http_host_validator.dart
文件,修改https://maven.google.com/
为 google maven 的国内镜像,如https://maven.aliyun.com/repository/google/
- 删除
/【path to flutter sdk】/bin/cache
文件夹 - 重新执行
flutter doctor