cmdline-tools:无法确定 SDK 根目录

cmdline-tools : could not determine SDK root

C:\Android\sdk\bin>sdkmanager 错误:无法确定 SDK 根目录。 错误:使用 --sdk_root= 明确指定或将此包移动到其预期位置:\cmdline-tools\latest\

即使在 env 变量中指定了 root 之后,它也是这样显示的。 ANDROID_SDK_ROOT C:\Android\sdk

我正在使用 windows 10 64 位机器,我想在没有 android studio 的情况下 运行 flutter 所以按照此页面上的说明进行操作 https://medium.com/@quicky316/install-flutter-sdk-on-windows-without-android-studio-102fdf567ce4

自新更新以来,有一些文档中未提及的更改。 解压命令行工具包后, 您将获得的最顶层目录是 cmdline-tools。 将解压后的目录从cmdline-tools重命名为tools,放在$C:/Android/cmdline-tools

现在看起来像 $C:/Android/cmdline-tools/工具

它将完美运行。

如果不想移动到其他位置,可以使用--sdk_root指定要安装和下载AndroidSDK的文件夹。

例如,如果您要使用:X:\Dev\AndroidSDK 并且您在该文件夹中下载并解压缩了命令行工具包,您将拥有以下路径:X:\Dev\AndroidSDK\cmdline-tools\bin for sdkmanager.bat.

因此,您的命令将是:

X:\Dev\AndroidSDK\cmdline-tools\bin>.\sdkmanager.bat --sdk_root=X:\Dev\AndroidSDK

PS: AndroidSDK 路径中不要使用空格,否则将无法运行

您可以在 cmdline-tools 中创建一个文件夹 latest,然后将其中的所有内容移动到该文件夹​​中。因此,您的完整路径将是 C:\Android\cmdline-tools\latest\bin。使用此配置无需定义 ANDROID_SDK_ROOT 环境变量或 --sdk_root= 选项。它会假定您的 SDK 文件夹是 C:\Android,并且会将您的所有文件(系统映像、许可证等)放入其中。

如果出现错误 错误:无法确定 SDK 根目录。 错误:使用 --sdk_root= 明确指定它或将此包移动到其预期位置:\cmdline-tools\latest\

然后使用指定 sdk root 的命令,例如:

sdkmanager --sdk_root=path-to-where-cmdline-tools-is "platform-tools" "platforms;android-29"

正在从 https://developer.android.com/studio#downloads.

下载 Android SDK 29+(Android 的命令行工具)

对于“commandlinetools-linux-7302050_latest.zip”,该过程与早期方法不同。早些时候解压后,顶级文件夹名为 tools,但现在顶级文件夹名为 cmdline-tools

问题似乎是 sdkmanager 期望驻留在名为的环境中。 /YOURPATH/cmdline-tools/SOMETHING/bin 但解包到 /YOURPATH/cmdline-tools/bin 无论如何 Linux。

如果你得到

Error: Could not determine SDK root.

Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: <sdk>/cmdline-tools/latest/

解压并确保您有通往 sdkmanager 的路径。 /YOURPATH/cmdline-tools/latest/bin/sdkmanager

如何

要使其正常工作,首先创建您想要的 Android SDK /opt/android-sdk/cmdline-tools/ 的路径,然后将 SDK zip 文件解压缩到该位置,您将拥有

/opt/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager

现在将第二个“cmdline-tools”重命名为“latest”

/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager

现在应该可以了。

下面的一些答案可能对其他人有用,但对我来说,直到我想到这一点,它们才起作用。

  1. 解压缩 zip 文件时不要更改目录名称。 (命令行工具)
  2. 使用记事本或任何相应的编辑器打开 source.property 文件以检查您的 SDK 管理器版本。
  3. 更新您的系统变量路径,即在此上下文中的 $C:/Android/cmdline-tools/4.0/bin 4.0 是我写这篇文章时的 SDK 管理器版本,然后关闭终端并再次重新打开它 运行 sdkmanager --version

祝你好运享受你的开发过程!

  1. 您需要将所有文件和文件夹放在这个新文件夹中tools

       `C:/Android/cmdline-tools/tools`
    

或备选步骤

2.1。输入 cmd C:\Android\cmdline-tools\bin

2.2。输入提示 sdkmanager.bat --sdk_root=C:\Android

• 转到提取的文件夹 android-sdk\cmdline-tools
• 在其中创建一个名为latest 的文件夹。
• 剪切 bin、lib ...等并粘贴到最新的文件夹中。
• 转到 android-sdk\cmdline-tools\latest 文件夹的 cmd 和 运行:

sdkmanager “platform-tools” “platforms;android-28”

解决问题

我在尝试使用 sdkmanager

接受 android 包的包许可证时遇到了这个答案

打开bin文件夹(我是从android那边下载的,https://developer.android.com/studio#downloads) 我从这里得到了 cmdline 工具。

首先我尝试了这个 bin> %ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses

遇到错误 - 无法确定询问 root

然后我试了这个

bin>sdkmanager.bat --licenses --sdk-root\E:\Android

把路径改成这样

C:/Android/cmdline-tools/tools/bin 

它非常适合我

我在 mac.

中成功配置了 command-line-tools
  • 大苏尔 11.6.4
  • commandlinetools-mac-8092744_latest.zip (6.0)

下载 zip archive 并解压。

% unzip commandlinetools-mac-8092744_latest.zip
% mv cmdline-tools latest
% mkdir sdk
% mkdir sdk/cmdline-tools
% mv latest sdk/cmdline-tools

看起来像这样。

┌ sdk
│    ├ cmdline-tools
│    │     ├ latest
│    │     │     ├ bin
│    │     │     ├ lib
│    │     │     ├ NOTICE.txt
│    │     │     ├ source.properties

运行 sdkmanager

% ./sdk/cmdline-tools/latest/bin/sdkmanager
[============================] 100% Computing updates...

我在 Ubuntu 服务器 18.04 上一直遇到这个错误,看来问题出在路径上。它应该与您下载 zip 时给出的不同。 这就是我为解决我的问题所做的工作:

~> wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip

~> unzip commandlinetools-linux-8092744_latest.zip

~> mkdir android-sdk

~> mv cmdline-tools android-sdk

~> cd android-sdk/cmdline-tools; mkdir latest 

~> mv ./* latest

# */ So the path will be now :
# android-sdk/cmdline-tools/latest/bin

# instead of android-sdk/cmdline-tools/bin

~> nano ~/.bashrc

# add these two lines :

export ANDROID_HOME=$HOME/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH

# save the file

source ~/.bashrc

# Try this now, it should work.

sdkmanager --list 

我正在 Mac 上安装 Android Studio for Flutter。以下步骤解决问题:

  1. 原解压文件夹为cmdline-tools。将文件夹层次结构更改为 cmdline-tools > latest。这意味着在 cmdline-tools 下创建一个新目录 latest 并将所有内容移动到 latest。 TL;DR 如果您仔细查看 zip 文件名,您会发现它的名称表明这是最新的。您可以有多个版本的 cmdline-tools,但 latest 目录意味着其中的内容是最新的。说说为什么要新建目录吧。

  2. 找出 Android SDK 所在的位置。打开 Android Studio 并导航至 Preference > Appearance & Behavior > System Settings > Android SDKAndroid SDK Location 是安装 Android SDK 的地方。对我来说,是/Users/myname/Library/Android/sdk。打开您的 Finder 并导航到它。

  3. cmdline-tools移动到sdk目录下。仔细检查 /Users/myname/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager

    下是否有 sdkmanager
  4. 遵循 Flutter 暗示我们要做的事情。 运行 /Users/myname/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;latest" 在您的终端中。这告诉最新的 sdkmanager 在哪里。

  5. 运行 flutter doctor -v 再次进入您的终端。问题应该已解决。