cmdline-tools : could not determine SDK root

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


Solution 1:

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.

Solution 2:

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.

Solution 3:

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.