Answers related to “set ANDROID_SDK_ROOT” Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk. dir path in your project's local properties file at '/Users/dayana/workspace/mentor/Fresh-app-sdk-3-Feb_1/android/local.
Go to Control Panel>>System and Security>>System>>Advance system settings>>Environment Variables then set variable value of ANDROID_HOME set it like this "C:\Users\username\AppData\Local\Android\sdk" set username as your pc name, then restart your android studio.
It happened something when the libraries are not installed correctly. Follow the steps as mentioned below: Created a blank project using Android Studio. After creating the project, using the shortcut ctrl+shift+a option and searched for AVD Manager.
There are may be several different problems when you move your AVD or SDK to another directory, or replace an old SDK with a new one, or somehow get the SDK corrupted.
Below I'll describe all the possible problems I know, and will give you several ways to solve them.
Of course I assume that you have any AVD created, and it is located in
C:\Users\<user_name>\.android\avd
(Windows) or~/.android/avd
(Linux/MacOS).If you moved
.android
to another place then set theANDROID_SDK_HOME
environment variable to the path of the parent dir containing your.android
and make sure the AVD Manager successfully found your Virtual Device.Also check paths in
<user_home>/.android/avd/<avd_name>.ini
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
These 2 errors happen if the emulator cannot find the SDK, or the SDK is broken.
So, first of all I recommend to remove the ANDROID_SDK_ROOT
variable at all. It's only needed when the emulator is located outside of the SDK directory. But in general, your emulator stays inside the SDK dir. And in this case it must detect the SDK location automatically. If it doesn't, then your SDK probably has wrong filetree. Please do the following:
Check that the SDK directory has at least these 4 directories: emulator
, platforms
, platform-tools
, system-images
. It is very important! These directories must be present. If some of them don't exist, then just create empty dirs.
Go to <user_home>/.android/avd/<avd_name>
and open config.ini
. Find the image.sysdir.1
property. It points at the directory, inside the SDK directory, that contains the actual system image. Make sure that this directory exists and contains files like build.prop
, system.img
, etc. If it doesn't, then you have to open the SDK Manager and download system images your AVD requires (see below).
If everything's set up properly, when these errors about ANDROID_SDK_ROOT
must be gone. If they're not, then now you may try to set up ANDROID_SDK_ROOT
variable.
The next problem you may face is that the emulator starts to launch, but hangs up or quits immediatelly. That probably means that you don't have all the required packages installed.
Another possible error is:
Could not automatically detect an ADB binary. Some emulator functionality will not work until a custom path to ADB is added in the extended settings page.
So, to successfully launch any AVD you must be sure that at least these packages are installed:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
And as I mentioned earlier you must install system images your AVD is using, for example system-images;android-25;google_apis;x86
Note that the most recent versions on SDK don't have a standalone
SDK Manager.exe
. Instead of it you have either to use Android Studio, ortools\bin\sdkmanager.bat
(Linux/MacOS probably havesh
files).To list all available packages use
sdkmanager --list
orsdkmanager --list --verbose
To install packages use
sdkmanager <package1> <package2> ...
Also I recommend to install HAXM on your system manually.
The last problem I'll mention happens when you're trying to move AVD or SDK from one computer or directory to another. In this case you may get such error:
qemu-system-i386.exe: -drive if=none,overlap-check=none,cache=unsafe,index=0,id=system,file=
C:\Users\<old_user_name>\.android\avd\<avd_name>
.avd\system.img.qcow2,read-only: Could not open backing file: Could not open '
<old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
': Invalid argument
There are 2 ways to fix it:
If you don't care about the data the AVD contains, just delete all the qcow2
files from the AVD directory (e.g. from <user_home>/.android/avd/<avd_name>
). In this case you will get a clean version of Android, like after a hard reset.
If the data on the emulator is important to you, then open all qcow2
files one by one using any HEX editor (I prefer HxD), find the path of a base img
file, and change it to the correct one in the Overwrite
mode (to preserve the file size). Then select the path and get its length in hex (e.g. 2F
). 2F
represents the ASCII slash /
. Put it into position 13
:
PS: Not sure, but there are probably some utilites like qemu-img allowing to set different base image. Well, to me it's easier to manually edit the binary.
Now you'll probably be able to successfully launch your Android Virtual Device. I hope so :)
On Mac:
I had installed android-sdk
using brew
as well as Android Studio. Somehow, having 2 installations was causing this problem. When I uninstalled my brew installation of the sdk using brew cask uninstall android-sdk
and added the following vars to my env. It worked.
export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
This will solve your problem in macOS:
pico ~/.bash_profile
export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_AVD_HOME=/Users/$USER/.android/avd
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME
source ~/.bash_profile
It means that your path to tools is incorrect. This is what it looks like on a mac using brew. Mind the version.
export ANDROID_SDK_ROOT='/usr/local/Cellar/android-sdk/24.4.1_1'
In your case it looks like you should run this:
export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With