繁体   English   中英

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

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

我正在尝试在没有 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 医生的 output: Flutter版本:1.12.13,Dart版本:2.7,Flutter找不到Android SDK

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

在文本编辑器中打开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

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

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

正如@Chrishan 所写Avoid using default windows extractor

您可以使用 PowerShell:

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

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

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

在我重命名用户名之后。 然后它就像一个魅力。 我使用此参考视频重命名了我的用户名

.

转到android sdk文件夹。

打开 cmdline-tools 文件夹。

然后将“最新”文件夹重命名为“工具”。

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

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

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

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

我已经通过做很多事情解决了这个问题。

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

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

  1. 确保 sdk 路径中的路径文件夹中没有空格。
  2. 将 ANDROID_SDK_ROOT 变量添加到 Users 变量中,其值为 sdk 文件夹的路径,例如 C:\\users\\xyz\\android\\sdk(这些文件夹名称中不应有空格)。
  3. 将此路径添加到系统变量中的路径变量中。
  4. 在命令提示符下运行 flutter doctor 。
  5. 运行 flutter doctor --android-licenses。
  6. 通过输入“y”接受许可证。

-- 设置应该完成,只需通过运行 flutter doctor 来检查。

我通过在我提取 cmd 工具的路径中删除一个空格来解决这个问题。 我的路径是:

C:\\Cordova Tools\\cmdline-tools

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

C:\\Cordova_Tools\\cmdline-tools

它工作得非常完美。

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

下载jdk 11并更新ev JAVA_HOME为C:\Program Files\Java\jdk-11.0.17

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM