Sdkmanager“错误:无法在 Windows 上找到或加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli”

Posted

技术标签:

【中文标题】Sdkmanager“错误:无法在 Windows 上找到或加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli”【英文标题】:Sdkmanager "Error: Could not find or load main class com.android.sdklib.tool.sdkmanager.SdkManagerCli" on Windows 【发布时间】:2020-06-28 19:49:30 【问题描述】:

我正在尝试在没有 android Studio 的情况下安装 Flutter,这就是我所做的:

已安装 Java 8 安装并解压 Flutter SDK 到C:\src。 已安装并解压 Android 命令行工具 (sdkmanager) 到 C:\Android。 添加了环境变量(ANDROID_HOME:C:\Android)

现在当我尝试运行 sdkmanager 来安装 Android SDK 时,我得到了这个错误:

"Error: Could not find or load main class com.android.sdklib.tool.sdkmanager.SdkManagerCli"

我尝试重新安装 Flutter sdk 和 sdkmanager,但没有成功。

这是 Flutter Doctor 的输出:

sdkmanager 错误:

【问题讨论】:

【参考方案1】:

问题可能是由于您的 sdk 安装在最终安装之前多次失败。 要检查是否是这种情况,请转到路径 C:\Users\AppData\Local\Android\Sdk ,如果有工具,tools-1,... 必要的文件安装在此文件夹的最后一个。 因此,将假定的原始文件夹 - tools 重命名为其他文件夹,并将安装完成的文件夹的名称更改为 tools。 这应该可以解决问题。

【讨论】:

这个问题已经有一个可接受的答案。【参考方案2】:

转到 android sdk 文件夹。

打开 cmdline-tools 文件夹。

然后将“latest”文件夹重命名为“tools”。

默认名称: (sdk的路径)\AndroidSDK\cmdline-tools\latest

重命名后: (sdk的路径)\AndroidSDK\cmdline-tools\tools

然后; 使用终端运行flutter doctor 命令。

【讨论】:

这个答案帮助我解决了我的问题。我已将 SDK 从一条路径移至另一条路径。谢谢@Lojith【参考方案3】:

我通过删除路径中提取 cmd 工具的空间来解决此问题。 我的路径是:

C:\Cordova Tools\cmdline-tools

文件夹名称“Cordova Tools”中有一个空格。 我删除了空间并更改了文件夹名称,例如:

C:\Cordova_Tools\cmdline-tools

而且效果非常好。

【讨论】:

【参考方案4】:

在 Windows Server 2019 上,使用 commandlinetools-win-6609375_latest.zip,我们遇到了同样的问题。我们将包放入Program File(即C:\Program Files\Android\cmdline-tools\tools\bin)。

如果路径中有空格,这似乎不起作用。所以我们把它放在没有空格的文件夹路径中(即C:\Android\cmdline-tools\tools\bin),它工作正常!?

【讨论】:

这也发生在我身上。我没有将它移动到不同的路径,而是在 sdkmanager.bat 中编辑了一行,只是在 toolsdir 参数周围加上引号。像这样:set DEFAULT_JVM_OPTS=-Dcom.android.sdklib.toolsdir="%~dp0\.." 谢谢!我在路径中的空格遇到了同样的问题 @Jan 三个小时后这有帮助【参考方案5】:
    下载 SDK 工具 ZIP(在 https://developer.android.com/studio 的命令行工具下)。 使用 7zip 解压缩。避免使用默认的 windows 提取器 - 不能正确提取。 使用7zip解压后,将内容放入sdk文件夹(C:\Users\<username>\AppData\Local\Android\Sdk\tools\binC:\Users\<username>\AppData\Local\Android\Sdk\lib)并在命令提示符下运行sdkmanager

【讨论】:

现在看来这需要在cmdline-tools/latest而不是tools【参考方案6】:

我做了这么多事情解决了这个问题。

    下载 Java 8。 将 EV 设置为 Java 8 文件夹。 在单独的文件夹中下载 SDK。 在设置 SDK 的 EV 时,请确保路径中没有空格。 在用户变量中设置以下路径: 构建工具。 平台工具。 平台 现在输入flutter doctor --android-licenses 多次按y,您的许可证最终将被接受。 使用flutter doctor检查您的许可证是否被接受

【讨论】:

【参考方案7】:

它对我有用。 确保 SDK 路径中的路径文件夹中没有空格。 例如:C:\Users\Anu Jadav\xyz\

就像上面的用户名一样,我有空间,最初,我无法执行颤振医生 --android-licenses。

在我重命名用户名之后。然后它就像一个魅力。 我用这个reference video重命名了我的用户名

.

【讨论】:

【参考方案8】:

首先打开android studio,然后从那里打开sdk manager并安装所需的sdk工具-

    确保 sdk 路径中的路径文件夹中没有空格。 将 ANDROID_SDK_ROOT 变量添加到 Users 变量中,并将值作为 sdk 文件夹的路径,例如C:\users\xyz\android\sdk(这些文件夹名称中不应有空格)。 将此路径添加到系统变量中的路径变量中。 在命令提示符下运行 flutter doctor。 运行颤振医生 --android-licenses。 输入“y”接受许可。

--设置应该已经完成​​,只需通过运行 flutter doctor 进行检查。

【讨论】:

【参考方案9】:

正如@Chrishan 写的Avoid using default windows extractor

您可以使用 PowerShell:

Expand-Archive  commandlinetools....zip  C:\Android\Sdk

【讨论】:

【参考方案10】:

在文本编辑器中打开sdkmanager.bat,然后在CLASSPATH=%APP_HOME%\...\sdkmanager-classpath.jar 下方添加echo %CLASSPATH%。然后运行sdkmanager --help,它将回显所需文件的 CLASSPATH。并检查它是否是有效路径。

在我的情况下,这是错误的路径,

它说我的sdkmanger-classpath.jarlib 文件夹中。但事实并非如此!它实际上在lib/_ 文件夹中。因此,我所做的简单解决方案是将lib/_ 文件夹中的内容复制到lib。然后效果很好!

【讨论】:

BIG ITEM here is using Windows to UNZIP the archive is failed。正确使用 7-zip 将文件放在各自的文件夹中。虽然在路径上找到了很好的替代选择。【参考方案11】:

我通过添加指向根文件夹(即 bin 的父级)的“--sdkroot”来修复。 例如% ./bin/sdkamanager --sdkroot 。

【讨论】:

事实是......我正在尝试 Win10,但我不太喜欢它,所以我现在回到 Linux,因此无法尝试你的答案。我接受了?

以上是关于Sdkmanager“错误:无法在 Windows 上找到或加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli”的主要内容,如果未能解决你的问题,请参考以下文章

sdkmanager 警告:无法下载任何源列表

错误:无法在 Windows cmd 的 PATH 中找到 git

如何隐藏 Android sdkmanager 下载进度条?

使用 less (2.2.1) 会引发需要 therubyracer 的错误(无法在 Windows 上安装 therubyracer)

无法运行 Android SDK 管理器。如何运行 SDKmanager.bat?

无法在 Windows 10 中安装 sdkmanager