cmdline-tools:无法确定 SDK 根

ala*_*fin 42 installation sdk android path flutter

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

它显示为这样,即使在 env 变量中指定了根之后。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

ala*_*fin 96

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

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

它会完美地工作。


Bo *_*sen 26

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。

如果你得到

错误:无法确定 SDK 根。

错误:要么使用 --sdk_root= 明确指定它,要么将此包移动到其预期位置:<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
Run Code Online (Sandbox Code Playgroud)

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

/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager
Run Code Online (Sandbox Code Playgroud)

现在它应该可以工作了。


iro*_*oys 19

我在我的 mac 中成功配置了命令行工具

\n
    \n
  • 大苏尔11.6.4
  • \n
  • commandlinetools-mac-8092744_latest.zip(6.0)
  • \n
\n

下载zip 存档并将其解压缩。

\n
% unzip commandlinetools-mac-8092744_latest.zip\n% mv cmdline-tools latest\n% mkdir sdk\n% mkdir sdk/cmdline-tools\n% mv latest sdk/cmdline-tools\n
Run Code Online (Sandbox Code Playgroud)\n

这看起来像这样。

\n
\xe2\x94\x8c sdk\n\xe2\x94\x82    \xe2\x94\x9c cmdline-tools\n\xe2\x94\x82    \xe2\x94\x82     \xe2\x94\x9c latest\n\xe2\x94\x82    \xe2\x94\x82     \xe2\x94\x82     \xe2\x94\x9c bin\n\xe2\x94\x82    \xe2\x94\x82     \xe2\x94\x82     \xe2\x94\x9c lib\n\xe2\x94\x82    \xe2\x94\x82     \xe2\x94\x82     \xe2\x94\x9c NOTICE.txt\n\xe2\x94\x82    \xe2\x94\x82     \xe2\x94\x82     \xe2\x94\x9c source.properties\n
Run Code Online (Sandbox Code Playgroud)\n

跑步sdkmanager

\n
% ./sdk/cmdline-tools/latest/bin/sdkmanager\n[============================] 100% Computing updates...\n
Run Code Online (Sandbox Code Playgroud)\n


Mar*_*ros 13

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


小智 9

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

\n
sdkmanager \xe2\x80\x9cplatform-tools\xe2\x80\x9d \xe2\x80\x9cplatforms;android-28\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n

它解决了问题

\n


小智 8

我在 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 

Run Code Online (Sandbox Code Playgroud)


Jua*_*bío 6

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

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

因此,您的命令将是:

X:\Dev\AndroidSDK\cmdline-tools\bin>.\sdkmanager.bat --sdk_root=X:\Dev\AndroidSDK
Run Code Online (Sandbox Code Playgroud)

PS:AndroidSDK 路径上不要使用空格,否则会失效