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 根目录的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 npm start “无法确定原生 SDK 版本”错误?