Hey there just ran into the same issue you did, the 3rd link down in google brought me to this bit of code that throws the error,
if (kernelFile == NULL) {
kernelFile = avdInfo_getKernelPath(avd);
if (kernelFile == NULL) {
derror( "This AVD's configuration is missing a kernel file!!" );
const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
if (sdkRootDir) {
derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
"%s" PATH_SEP "system-images" PATH_SEP
" sub directories", sdkRootDir, sdkRootDir);
} else {
derror( "ANDROID_SDK_ROOT is undefined");
}
exit(2);
to which the person wrote:
"/* If the kernel image name ends in "-armv7", then change the cpu
* type automatically. This is a poor man's approach to configuration
* management, but should allow us to get past building ARMv7
* system images with dex preopt pass"
So I went back in and downloaded the x86 intel atom version for my desired API level and was able to get the emulator up without the error. Hope it helps you too.....
It is possible that you really have no system images. Double-check that $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a exists and is not empty. If they really are missing - install/reinstall with SDK manager.
A common approach to follow to solve this problem.
1.CHECK your SDK manager by running from your android studio and stand alons sdk folder by executing ./android.sh helps you to find broken packages
Try installing System emulator images with google API support than the Intel one. Just like , i solved my problem by running into another system image.
Experment on KVM based Virtulaization suggested by Google for Linux
Normally, the error will occur due to an unsuitable AVD emulator for the type of app you are developing for. For example if you are developing an app for a wearable but you are trying to use a phone emulator to run it.
Just fixed this. Hope this helps others. (Issue as in Android studio v2)
This issue is for arm emulators. In this example I am using armeabi-v7a API 16
The fix is three steps:
Step 1:
Open sdk manager and make sure that you have installed ARM EABI v7a System Image
Step 2.
This is the obvious case of adding the location of sdk to system variables.
Right click on "This PC" icon on desktop, then
Properties -> Advanced system settings -> Environment Variables...
Then add the path to sdk as new to system variables section using variable name ANDROID_SDK_ROOT.
Step 3.
Restart Android Studio for changes to register. After correcting the ANDROID_SDK_ROOT is undefined issue, the emulator still can't find the kernel files even though it can see that the sdk manager installed it to
And that was the missing kernel file. You can run the emulator. (You will need to close the Android Studio and reopen again) Give the emulator some time as it is 10x times slower compared to x86. (Mine took about 5 minutes to start)
In my case (Windows 10) the reason was that I dared to unzip the android sdk into non default folder. When I moved it to the default one c:/Users/[username]/AppData/Local/Android/Sdk and changed the paths in Android Studio and System Variables, it started to work.
I had the same error. The solution for me was change the ANDROID_HOME path. First I took a look into tools->android->sdk manager from Android Studio. In that window, we can see the path where Android Studio looks for the SDK: image
Then I opened a Windows CMD shell, executed:
echo %ANDROID_HOME%
but the path was different to the one in ANDROID STUDIO CONFIGURATION of the first step.
The solution was to change in user environment, the ANDROID_HOME, to the one of the first step: image
I finally closed the cmd shell, and opened another cmd shell to execute:
echo %ANDROID_HOME%
the path was updated, and I could run my emulator perfectly.