本页描述了一些新 Flutter 用户遇到的常见安装问题,并提供了解决这些问题的建议。

如果您在使用本页后仍然遇到问题,请考虑联系社区支持渠道中列出的任何资源。要向本页添加主题或进行更正,您可以在 GitHub 上提交问题或提交拉取请求

获取 Flutter SDK

#

找不到 flutter 命令

#

此问题表现为何?

当您尝试运行 flutter 命令时,控制台无法找到它。错误通常如下所示

'flutter' is not recognized as an internal or external command operable program or batch file

macOS 和 Linux 上的错误消息可能与 Windows 上的略有不同。

解释和建议

您是否将 Flutter 添加到您平台的 PATH 环境变量中?在 Windows 上,请按照这些将命令添加到路径的说明进行操作。

如果您已经为 Flutter 开发设置了 VS Code,您可以使用 Flutter 扩展的 Locate SDK 提示来识别您的 flutter 文件夹的位置。

另请参阅:配置 PATH 和环境变量 - Dart Code

特殊文件夹中的 Flutter

#

此问题表现为何?

运行您的 Flutter 项目会产生如下错误

The Flutter SDK is installed in a protected folder and may not function correctly.
Please move the SDK to a location that is user-writable without Administration permissions and restart.

解释和建议

在 Windows 上,这通常发生在 Flutter 安装在需要提升权限的目录(如 C:\Program Files\)中时。尝试将 Flutter 重新定位到不同的文件夹,例如 C:\src\flutter

Android 设置

#

安装了多个版本的 Java

#

此问题表现为何?

命令 flutter doctor --android-licenses 失败。运行 flutter doctor --verbose 会出现如下错误消息

java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider
has been compiled by a more recent version of the Java Runtime (class file version 55.0),
this version of the Java Runtime only recognizes class file versions up to 52.0

解释和建议

当您的计算机上安装了旧版本的 Java Development Kit (JDK) 时,会发生此错误。

如果您不需要多个版本的 Java,请从您的计算机上卸载现有的 JDK。Flutter 会自动使用 Android Studio 中包含的 JDK。

如果您确实需要另一个版本的 Java,请尝试此 GitHub 问题中描述的解决方法,直到实施长期解决方案。有关更多信息,请查看Android Java Gradle 迁移指南flutter doctor --android-licenses 因 java.lang.UnsupportedClassVersionError 而无法工作 - Stack Overflow

缺少 cmdline-tools 组件

#

此问题表现为何?

flutter doctor 命令抱怨 Android 工具链中缺少 cmdline-tools。例如

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at C:\Users\My PC\AppData\Local\Android\sdk
    X cmdline-tools component is missing

解释和建议

获取 cmdline-tools 最简单的方法是通过 Android Studio 中的 SDK 管理器。为此,请使用以下说明

  1. 从菜单栏中选择 Tools > SDK Manager,从 Android Studio 打开 SDK 管理器。
  2. 选择最新的 Android SDK(或您的应用所需的特定版本)、Android SDK Command-line Tools 和 Android SDK Build-Tools。
  3. 单击 Apply 安装选定的工件。

Android Studio SDK Manager

如果您不使用 Android Studio,您可以使用 sdkmanager 命令行工具下载这些工具。

macOS 设置

#

SocketException: 发送失败,操作系统错误:无路由到主机,errno = 65

#

此问题表现为何?

在 macOS 上,flutter run 命令会产生如下错误

$ flutter run
Launching lib/main.dart in debug mode...
...
Installing and launching...
Oops; flutter has exited unexpectedly: "SocketException: Send failed (OS Error: No route to host, errno = 65), address = 0.0.0.0, port = 5353".

解释和建议

此问题与 macOS 权限有关。

要解决此问题

  1. 将您的 Flutter SDK 升级到最新版本。

  2. 打开 System Settings > Privacy & Security > Local Network。为您用于启动 Flutter 应用程序的所有代码编辑器和终端启用权限。您可能需要重新启动您的代码编辑器、终端和物理设备。

其他问题

#

退出代码 69

#

此问题表现为何?

运行 flutter 命令会产生“退出代码:69”错误,如下例所示

Running "flutter pub get" in flutter_tools...
Resolving dependencies in .../flutter/packages/flutter_tools... (28.0s)
Got TLS error trying to find package test at https://pub.dev/.
pub get failed
command:
".../flutter/bin/cache/dart-sdk/bin/
dart __deprecated_pub --color --directory
.../flutter/packages/flutter_tools get --example"
pub env: {
  "FLUTTER_ROOT": ".../flutter",
  "PUB_ENVIRONMENT": "flutter_cli:get",
  "PUB_CACHE": ".../.pub-cache",
}
exit code: 69

解释和建议

此问题与网络有关。尝试以下说明进行故障排除

  • 检查您的互联网连接。确保您已连接到互联网并且连接稳定。
  • 重新启动您的设备,包括您的计算机和网络设备。
  • 使用 VPN 有助于绕过可能阻止您连接到网络的任何限制。
  • 如果您已尝试所有这些步骤,但仍然收到错误,请使用 flutter doctor -v 命令打印详细日志,并在其中一个社区支持渠道中寻求帮助。

社区支持

#

Flutter 社区乐于助人且热情好客。如果上述建议都无法解决您的安装问题,请考虑从以下渠道之一寻求支持

为了尊重每个人的时间,请在发布新问题之前搜索档案中是否有类似问题。