我得到错误"cmdline-tools组件是缺失"安装Flutter和Android Studio后…我添加了Android SDK。我该如何解决呢?

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.
305417 次浏览

我的解决方案是打开Android Studio并进入SDK经理,切换到SDK工具选项卡并检查Android SDK命令行工具(最新)

Enter image description here

不要忘记将SDK中的工具和平台工具文件夹添加到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. < p > ~/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. < p > 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"

并点击输入

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

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

Enter image description here

最简单的解决方案:

  • 打开Android Studio,点击Android Studio左上角的设置。
  • 搜索“SDK工具”;在搜索框中。
  • 在SDK工具中检查Android SDK平台工具
  • 执行flutter doctor检查。如果你愿意,你也可以重新启动Android Studio。
    我希望这个问题能得到解决。

Windows用户

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

  • 只要输入
flutter config --android-sdk "C:\Users\{Your_User_Name}\AppData\Local\Android\Sdk" # (Default SDK location)
  • ""内的路径添加到Android SDK文件夹所在的位置

  • 然后可以运行license来验证任何未被批准的license。

这对我很管用。

Windows上的Android SDK管理器截图

Enter image description here

从SDK管理器中安装工具请参见附件截图。

适用于Linux (Ubuntu)

在你的终端复制这个命令,然后用你的用户名(不带空格)修改“你的用户名”:

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

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

安装前错误

从Android Studio安装的平台工具

平台工具安装完成后 . sh / href="https://i.stack.imgur.com/dC9L5.png" rel="nofollow noreferrer">

你必须安装Android SDK命令行工具。 要做到这一点,调用菜单命令文件设置Android SDK并下载最新的

你必须在设置窗口的左边选择Android SDK。它在外观,行为系统设置下面。

  1. 从Android Studio打开SDK管理器。
  2. SDK工具选项卡
  3. 检查图片中的Android SDK命令行工具
  4. 应用
  5. 再次运行 flutter doctor。 李enter image description here < / >

我在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安装了最新的cmd行工具,但它仍然给出错误,那么您应该执行以下操作。

如果你已经将Android SDK安装到一个自定义目录,那么你需要复制SDK文件夹的路径。然后你必须去编辑环境变量,点击 give 变量名:ANDROID_SDK_ROOT。和一个变量值SDK文件夹的路径。 单击好吧。< / p >

在较旧版本的Flutter中,此错误随解决方案一起出现(创建ANDROID_SDK_ROOT),但在新版本中它没有显示这一点。

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

enter image description here

  • 打开Android Studio,在欢迎屏幕上单击“更多的行动”。
  • 点击“SDK经理

enter image description here

  • 在“*首选项”窗口转到“*SDK Tools•”选项卡
  • 选择“Android SDK命令行工具(最新)”复选框。
  • 点击“应用”。

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

flutter config --android-sdk="C:\Users\{Your_User_Name}\AppData\Local\Android\Sdk"

您的Android SDK版本需要更新。

打开Android Studio→点击顶部栏上的Android工作室首选项外观,行为(点击打开下拉菜单)→系统设置(点击打开下拉菜单)→Android SDKSDK工具(标签)。

检查Android SDK命令行工具(最新)应用→点击好吧。一旦更新完成,运行flutter doctor

外观截图&行为菜单< / >

macOS用户:

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

然后

flutter doctor --android-licenses

类型“y"所有的站。

MacOS用户

如果已经安装了android studio,只需运行:

flutter config --android-sdk "/Users/$USER/Library/Android/sdk" & flutter doctor --android-licenses

Windows: 如果在安装“Android SDK命令行工具(最新)”后仍然面临问题;通过Android Studio ->设置→外观,行为→系统设置->Android SDK ->SDK Tools,您需要配置flutter for Android SDK Path(不是环境变量路径)

Android SDK将安装在程序文件下,例如(C:\Program files (x86)\Android\ Android - SDK)。如果不是这个位置,找到它安装的位置并进入bin文件夹(C:\Program Files (x86)\Android\ Android -sdk\cmdline-tools\7.0\bin)并运行

flutter config --android-sdk "C:\Program Files (x86)\Android\android-sdk"

经过这次跑扑医生,现在这个问题应该解决了。