Flutter项目 flutter doctor检测报错:X cmdline-tools component is missing, X Android license status unknown.

这个错误是提示缺少 cmdline-tools 组件,并且需要接受 Android SDK 许可证。

1. 安装 cmdline-tools

找到你的Android SDK安装目录,在项目的 local.properties 文件中,通常会有一行类似:

sdk.dir=D\:\\Android\\Sdk

导航到你的 Android SDK 的 tools/bin 目录,下面以我的为例

cd D:\Android\Sdk\tools\bin

运行以下命令来安装 cmdline-tools:

sdkmanager --install "cmdline-tools;latest"

在这里插入图片描述
如果不出意外的话,等一会就会安装好,安装好后会打印如下日志

[=======================================] 100% Unzipping... cmdline-tools/lib/sd

如果报错的话,大概率是你的Java运行环境问题,类似于如下日志:

D:\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:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 5 more

错误信息表明缺少 javax.xml.bind.annotation.XmlSchema 类,这是由于在 Java 9 及更高版本中移除了 javax.xml.bind 包。

把Java运行环境改为Java 8 就可以了。

2.接受许可证和验证配置

接着运行如下指令

flutter doctor --android-licenses

按提示输入 y 接受所有许可证。

运行 flutter doctor 验证配置:

flutter doctor

在这里插入图片描述
解决!

猜你喜欢

转载自blog.csdn.net/WriteBug001/article/details/142337370