安装 Flutter 和 Android Studio 后出现错误 "cmdline-tools component is missing"... 我添加了 Android SDK。我该如何解决它们?

I am getting error "cmdline-tools component is missing" after installing Flutter and Android Studio... I added the Android SDK. How can I solve them?

Android 工具链 - 我为 Android 设备开发(Android SDK 版本 30.0.3):

X 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 Studio 并转到 SDK Manager,切换到 SDK Tools 选项卡,然后检查 Android SDK 命令行工具(最新).

不要忘记将 SDK 中的 tools 和 platform-tools 文件夹添加到 PATH。

如果 flutter doctor 说的是这样的话:

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/<admin>/Library/Android/sdk
✗ cmdline-tools component is missing
  Run `path/to/sdkmanager --install "cmdline-tools;latest"`

对我来说 path/to/sdkmanager 是:

/Users/<user>/Library/Android/sdk/tools/bin/sdkmanager

所以对我来说解决整个问题的是 运行:

/Users/<user>/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"

对于 macOS,我 运行 这个命令;

cd ~/Library/Android/sdk/tools/bin
./sdkmanager --install "cmdline-tools;latest"

然后当我再次运行 flutter doctor 命令时,确认问题已经解决。

我的解决过程如下:

  1. ~/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"

    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
        ... 5 more
    
  2. 在 Android Studio 中安装 Android SDK 命令行工具:

    首选项外观和行为系统设置Android SDKSDK 工具Android SDK 命令行工具(最新)

  3. flutter doctor

    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 2.5.0, on macOS 11.5.2 20G95 darwin-x64, locale zh-Hans-CN)
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    [✓] Xcode - develop for iOS and macOS
    [✓] Chrome - develop for the web
    [✓] Android Studio (version 2020.3)
    [✓] IntelliJ IDEA Ultimate Edition (version 2021.2)
    [✓] IntelliJ IDEA Ultimate Edition (version 2021.2)
    [✓] Connected device (2 available)
    
    • No issues found!
    

如果您是 Mac 用户,只需打开您的终端并粘贴:

cd Library/Android/sdk/tools/bin./sdkmanager --install "cmdline-tools;latest"

然后按 Enter

此命令将安装最新版本的 cmdline-tools

然后,运行flutter doctor,错误就消失了。

最简单的解决方案:

  • 打开Android工作室,点击Android工作室左上角的设置。
  • 在搜索框中搜索“SDK 工具”。
  • 从 SDK 工具中检查 Android SDK 平台工具
  • 运行flutter doctor验证。如果需要,您也可以重新启动 Android Studio。
    希望问题能得到解决

对于 Windows 用户

如果你在构建工具后仍然看到相同的错误,工具已安装并添加到 user/system 路径变量,可能你的 sdkmanager 位置确实没有找到

试试这个

  • 只需输入

    flutter config --android-sdk "C:\Users\barma\AppData\Local\Android\Sdk" (since my SDK folder is here)
    
  • "" 中的路径添加到 Android SDK 文件夹所在的位置

  • 然后您可以运行许可证来验证任何未获批准的许可证。

这对我有用。

Android Windows

上的 SDK 管理器屏幕截图

请参阅随附的屏幕截图,了解如何从 SDK 管理器安装工具。

对于Linux (Ubuntu)

只需在您的终端中复制此命令,然后将 'your user name' 更改为您的用户名,不带空格:

/home/your user name/Android/Sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"

我从 Android Studio 安装了 Android SDK 平台工具。这帮助我解决了这个错误。

Error before installation

Installed platform tool from Android Studio

After installation of Platform tools

您必须安装 Android SDK 命令行工具。 为此,调用菜单命令 FileSettingsAndroid SDK 并下载最新.

您必须在设置window左侧选择AndroidSDK。它位于 外观和行为系统设置

  1. 从您的 Android Studio 打开 SDK 管理器。
  2. SDK 工具 选项卡
  3. 勾选AndroidSDK命令行工具如图
  4. 应用.
  5. 然后 再 运行 flutter doctor.

我在 Windows 10 上通过以下操作解决了这个问题:

  1. 运行 在 Windows 命令提示符或 Flutter 控制台中执行以下命令:

    flutter config --android-sdk "C:\Users\'your computer name' AppData\Local\Android\Sdk"
    

    (您可能需要找到并输入您自己的SDK路径)

    Android SDK 位置可以在 Android Studio 应用程序中找到* → 外观和行为系统设置Android SDK

  2. 打开您的 Android Studio,然后 → 文件设置外观和行为系统设置Android SDKSDK 工具 → 下载 Android SDK 命令行工具(最新),一切顺利。

如果您已经从 Android Studio 安装了最新的命令行工具,但仍然出现错误,那么您应该执行以下操作。

如果您已将Android SDK 安装到自定义目录,则需要复制SDK 文件夹的路径。然后你得去编辑环境变量,点击新建给 一个变量名:ANDROID_SDK_ROOT。以及一个变量值:您的 SDK 文件夹的路径。 单击确定

在老版本的 Flutter 中,这个错误伴随着解决方案(创建 ANDROID_SDK_ROOT),但在新版本中它没有显示。

由于我的 Android Studio 启动屏幕看起来与上面的答案不同,我想分享我的解决方案:

  • 打开 Android Studio 并在欢迎屏幕上单击“更多操作”。
  • 单击“SDK 管理器

  • 在“*首选项”中 window 转到“*SDK 工具•”选项卡
  • Select“Android SDK Command-line 工具(最新)”复选框。
  • 点击“应用”。

如果您已经下载了 cmdline-tools 和 Android Sdk,请确保 flutter 没有在错误的目录中查找

flutter config --android-sdk=""

您的 Android SDK 版本需要更新。

打开Android工作室

Android Studio(如果使用旧版本则为文件)-> 首选项 -> 外观和行为 -> 系统设置(下拉菜单)-> Android SDK -> SDK 工具 -> 检查 Android SDK Command-line 工具(最新)-> 应用 -> 更新完成后单击确定 -> 运行 flutter doctor。 Screenshot of the Appearance & Behavior menu

对于 Mac OS 用户:

flutter config --android-sdk "/Users/{YOUR_USER_NAME}/Library/Android/sdk"

然后

flutter doctor --android-licenses

所有停靠点“y”的类型