42
votes

C:\Android\sdk\bin>sdkmanager Error: Could not determine SDK root. Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: \cmdline-tools\latest\

it shows like this, even after specifying the root in env variables. ANDROID_SDK_ROOT C:\Android\sdk

I am using windows 10 64 bit machine, I want to run flutter without android studio so followed instruction on this page https://medium.com/@quicky316/install-flutter-sdk-on-windows-without-android-studio-102fdf567ce4

7

7 Answers

96
votes

Since new updates, there are some changes that are not mentioned in the documentation. After unzipping the command line tools package, the top-most directory you'll get is cmdline-tools. Rename the unpacked directory from cmdline-tools to tools, and place it under $C:/Android/cmdline-tools

now it will look like $C:/Android/cmdline-tools/tools

and it will work perfectly.

26
votes

Downloading the Android SDK 29+ (command line tools for Android) from https://developer.android.com/studio#downloads.

For "commandlinetools-linux-7302050_latest.zip" the process was different from earlier approaches. Earlier after unpacking, the top folder was called tools, but now the top folder is called cmdline-tools.

The problem seems to be that the sdkmanager expects to reside in an environment called. /YOURPATH/cmdline-tools/SOMETHING/bin but unpacks to /YOURPATH/cmdline-tools/bin for Linux anyway.

if you get

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/

Unpack and make sure you have this path to the sdkmanager. /YOURPATH/cmdline-tools/latest/bin/sdkmanager

How To

To get this to work, first create the path to your intended Android SDK /opt/android-sdk/cmdline-tools/ then unpack the SDK zip file to that location, and you will have

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

Now rename the second "cmdline-tools" to "latest"

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

And now it should work.

13
votes

You can create a folder latest inside your cmdline-tools and move all it's contents inside this folder. So, your full path will be C:\Android\cmdline-tools\latest\bin. Using this config there is no need to define a ANDROID_SDK_ROOT environment variable or a --sdk_root= option. It'll assume that your SDK folder is C:\Android, and it'll put all your files (system-images, licenses, ...) inside it.

6
votes

If you don't want to move it to another location, you can use --sdk_root to specify the folder where do you want to install and download Android SDK.

For example, if you want to use: X:\Dev\AndroidSDK and you downloaded and unziped your the command line tools package in that folder, you'll have this path: X:\Dev\AndroidSDK\cmdline-tools\bin for sdkmanager.bat.

So, your command will be:

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

PS: Don't use spaces on the path to AndroidSDK or it will not work

1
votes

if you get an error Error: Could not determine SDK root. Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: \cmdline-tools\latest\

then use command with sdk root specified like:

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

1
votes
  1. You need put all the files and folders in this new folder tools

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

OR Alternative step

2.1. type cmd C:\Android\cmdline-tools\bin

2.2. type in the promt sdkmanager.bat --sdk_root=C:\Android

0
votes

Some of the answers below might have worked for others but for my case, they didn't work until I figured this.

  1. Do not change the directory name upon extracting the zip file. (cmdline-tools)
  2. open the source.property file using notepad or any respective editor to check your SDK manager version.
  3. Update your system variable paths i.e $C:/Android/cmdline-tools/4.0/bin in this context 4.0 is my SDK manager version upon writing this and thereafter close the terminal and reopen it again and run sdkmanager --version

Good luck Enjoy your development process!