概述
flutter doctor 命令用于检查 flutter 相关工具的安装情况,如果都不缺,运行结果如下:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.3, on Arch Linux 5.16.13-arch1-1, locale zh_CN.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.1)
[✓] IntelliJ IDEA Community Edition (version 2021.3)
[✓] 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