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

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

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

现在,当我尝试 运行 sdkmanager 安装 Android SDK 时,出现此错误:

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

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

这是 Flutter Doctor 的输出:

sdkmanager错误:

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

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

就我而言,这是错误的路径,

它说我的 sdkmanger-classpath.jarlib 文件夹中。但事实并非如此!它实际上位于 lib/_ 文件夹中。因此,作为简单的解决方案,我所做的是将 lib/_ 文件夹中的内容复制到 lib。然后它工作正常!

  1. 下载 SDK 工具 ZIP(在 https://developer.android.com/studio 中的命令行工具下)。
  2. 使用 7zip 解压缩。避免使用默认的 windows 提取器 - 它不能正确提取。
  3. 使用 7zip 解压缩后,将内容放入 sdk 文件夹(C:\Users\<username>\AppData\Local\Android\Sdk\tools\binC:\Users\<username>\AppData\Local\Android\Sdk\lib)并在命令提示符下 运行 sdkmanager

正如@Chrishan 所写Avoid using default windows extractor

您可以使用 PowerShell:

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

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

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

首先打开 android studio,然后打开 sdk 管理器并安装所需的 sdk 工具,然后 -

  1. 确保 sdk 路径中的路径文件夹中不存在 space。
  2. 将 ANDROID_SDK_ROOT 变量添加到 Users 变量,并将值作为 sdk 文件夹的路径,例如C:\users\xyz\android\sdk(这些文件夹名称中不应有space)。
  3. 将此路径添加到系统变量中的路径变量中。
  4. 运行 在命令提示符下使用 flutter doctor。
  5. 运行扑博士--android-licenses.
  6. 输入 'y' 接受许可。

--设置应该完成并由 运行 flutter doctor 检查。

它对我有用。 确保 SDK 路径中的路径文件夹中不存在 space。 示例:C:\Users\Anu Jadav\xyz\

就像上面的用户名一样,我有 space,最初,我无法执行 flutter doctor --android-licenses.

我重命名用户名后。然后它就像一个魅力。 我使用 reference video

重命名了我的用户名

.

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

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

我通过删除我提取 cmd 工具的路径中的 space 解决了这个问题。 我的路径是:

C:\Cordova Tools\cmdline-tools

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

C:\Cordova_Tools\cmdline-tools

而且效果非常好。

转到 android sdk 文件夹。

打开 cmdline-tools 文件夹。

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

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

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

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

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