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

Posted

技术标签:

【中文标题】cmdline-tools:无法确定 SDK 根目录【英文标题】:cmdline-tools : could not determine SDK root 【发布时间】:2021-03-23 12:25:42 【问题描述】:

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

即使在 env 变量中指定了根之后,它也会显示为这样。 android_SDK_ROOT C:\Android\sdk

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

【问题讨论】:

【参考方案1】:

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

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

它会完美运行。

【讨论】:

太棒了!!您是如何找到该解决方案的?【参考方案2】:

从https://developer.android.com/studio#downloads 下载 Android SDK 29+(Android 命令行工具)。

对于“commandlinetools-linux-7302050_latest.zip”,该过程与早期的方法不同。之前解压后,顶层文件夹叫tools,现在顶层文件夹叫cmdline-tools

问题似乎是 sdkmanager 期望驻留在名为的环境中。 /YOURPATH/cmdline-tools/SOMETHING/bin 但对于 Linux 还是解压到 /YOURPATH/cmdline-tools/bin

如果你得到

错误:无法确定 SDK 根目录。

错误:使用 --sdk_root= 明确指定它或移动它 打包到它的预期位置:/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

现在它应该可以工作了。

【讨论】:

【参考方案3】:

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

【讨论】:

这个答案不仅适用于android本身。它一次性解决了我的flutter doctor --android-licenses 问题:“找不到Android sdkmanager。更新到最新的Android SDK 并确保安装了cmdline-tools 来解决这个问题。” 这就是为什么我不喜欢window或andriod,愚蠢的错误,没有工程师精神【参考方案4】:

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

例如,如果您想使用: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 路径中不要使用空格,否则将不起作用

【讨论】:

【参考方案5】:

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

然后使用指定 sdk root 的命令,如下所示:

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

【讨论】:

【参考方案6】:

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

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

解决问题

【讨论】:

【参考方案7】:

    您需要将所有文件和文件夹放入这个新文件夹tools

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

或替代步骤

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

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

【讨论】:

【参考方案8】:

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

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

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

【讨论】:

【参考方案9】:

我在尝试使用 sdkmanager 接受 android 包的包许可证时遇到了这个答案

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

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

出现错误 - 无法确定询问 root

然后我尝试了这个

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

【讨论】:

【参考方案10】:

把路径改成这样

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

它非常适合我

【讨论】:

以上是关于cmdline-tools:无法确定 SDK 根目录的主要内容,如果未能解决你的问题,请参考以下文章

运行颤振医生时出错--android-licenses

如何修复 npm start “无法确定原生 SDK 版本”错误?

Xamarin - 无法确定 Android SDK 位置

颤振医生 --android-licenses 错误,如何解决这个问题?

无法设置 HarmonyOS SDK 位置。该怎么办?

xcrun:错误:无法找到 SDK“iphoneos”