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,这就是我所做的:
- 已安装 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错误:
我通过添加指向根文件夹(即 bin 的父文件夹)的“--sdkroot”来修复。
例如% ./bin/sdkamanager --sdkroot .
在文本编辑器中打开 sdkmanager.bat
并在 CLASSPATH=%APP_HOME%\...\sdkmanager-classpath.jar
下方添加 echo %CLASSPATH%
。然后 运行 sdkmanager --help
将回显所需文件的 CLASSPATH。并检查它是否是有效路径。
就我而言,这是错误的路径,
它说我的 sdkmanger-classpath.jar
在 lib
文件夹中。但事实并非如此!它实际上位于 lib/_
文件夹中。因此,作为简单的解决方案,我所做的是将 lib/_
文件夹中的内容复制到 lib
。然后它工作正常!
- 下载 SDK 工具 ZIP(在 https://developer.android.com/studio 中的命令行工具下)。
- 使用 7zip 解压缩。避免使用默认的 windows 提取器 - 它不能正确提取。
- 使用 7zip 解压缩后,将内容放入 sdk 文件夹(
C:\Users\<username>\AppData\Local\Android\Sdk\tools\bin
和 C:\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 工具,然后 -
- 确保 sdk 路径中的路径文件夹中不存在 space。
- 将 ANDROID_SDK_ROOT 变量添加到 Users 变量,并将值作为 sdk 文件夹的路径,例如C:\users\xyz\android\sdk(这些文件夹名称中不应有space)。
- 将此路径添加到系统变量中的路径变量中。
- 运行 在命令提示符下使用 flutter doctor。
- 运行扑博士--android-licenses.
- 输入 'y' 接受许可。
--设置应该完成并由 运行 flutter doctor 检查。
它对我有用。
确保 SDK 路径中的路径文件夹中不存在 space。
示例:C:\Users\Anu Jadav\xyz\
就像上面的用户名一样,我有 space,最初,我无法执行 flutter doctor --android-licenses.
我重命名用户名后。然后它就像一个魅力。
我使用 reference video
重命名了我的用户名
.
我做了很多事情解决了这个问题。
- 下载Java8.
- 将 EV 设置为 Java 8 文件夹。
- 在单独的文件夹中下载 SDK。
- 设置SDK EV时确保路径中没有空格。
- 在用户变量中设置以下路径:
- 构建工具。
- 平台工具。
- 平台
- 现在输入
flutter doctor --android-licenses
- 按
y
多次,最后您的许可将被接受。
- 使用
flutter doctor
检查您的许可是否被接受
我通过删除我提取 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。
这应该可以解决问题。
我正在尝试在没有 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错误:
我通过添加指向根文件夹(即 bin 的父文件夹)的“--sdkroot”来修复。 例如% ./bin/sdkamanager --sdkroot .
在文本编辑器中打开 sdkmanager.bat
并在 CLASSPATH=%APP_HOME%\...\sdkmanager-classpath.jar
下方添加 echo %CLASSPATH%
。然后 运行 sdkmanager --help
将回显所需文件的 CLASSPATH。并检查它是否是有效路径。
就我而言,这是错误的路径,
它说我的 sdkmanger-classpath.jar
在 lib
文件夹中。但事实并非如此!它实际上位于 lib/_
文件夹中。因此,作为简单的解决方案,我所做的是将 lib/_
文件夹中的内容复制到 lib
。然后它工作正常!
- 下载 SDK 工具 ZIP(在 https://developer.android.com/studio 中的命令行工具下)。
- 使用 7zip 解压缩。避免使用默认的 windows 提取器 - 它不能正确提取。
- 使用 7zip 解压缩后,将内容放入 sdk 文件夹(
C:\Users\<username>\AppData\Local\Android\Sdk\tools\bin
和C:\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 工具,然后 -
- 确保 sdk 路径中的路径文件夹中不存在 space。
- 将 ANDROID_SDK_ROOT 变量添加到 Users 变量,并将值作为 sdk 文件夹的路径,例如C:\users\xyz\android\sdk(这些文件夹名称中不应有space)。
- 将此路径添加到系统变量中的路径变量中。
- 运行 在命令提示符下使用 flutter doctor。
- 运行扑博士--android-licenses.
- 输入 'y' 接受许可。
--设置应该完成并由 运行 flutter doctor 检查。
它对我有用。
确保 SDK 路径中的路径文件夹中不存在 space。
示例:C:\Users\Anu Jadav\xyz\
就像上面的用户名一样,我有 space,最初,我无法执行 flutter doctor --android-licenses.
我重命名用户名后。然后它就像一个魅力。 我使用 reference video
重命名了我的用户名.
我做了很多事情解决了这个问题。
- 下载Java8.
- 将 EV 设置为 Java 8 文件夹。
- 在单独的文件夹中下载 SDK。
- 设置SDK EV时确保路径中没有空格。
- 在用户变量中设置以下路径:
- 构建工具。
- 平台工具。
- 平台
- 现在输入
flutter doctor --android-licenses
- 按
y
多次,最后您的许可将被接受。
- 按
- 使用
flutter doctor
检查您的许可是否被接受
我通过删除我提取 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