Cannot run emulator in Android Studio

AndroidAndroid StudioAndroid Emulator

Android Problem Overview


I just got done installing Android studio and trying to take it for a test run. When I try to run my app I get the following error message

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

Does anybody know how to fix this????

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

Go to Tools | Android | AVD Manager

Click the arrow under the Actions column on far right (where error message is)

Choose Edit

Leave the default selection (For me, MNC x86 Android M)

Click Next

Click Finish

It saves your AVD and error is now gone from last column. And emulator works fine now.

Solution 3 - Android

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

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

The reason is a mix-up between the location the sdk manager installs the kernel file to and the location the emulator is looking for it.

If you open your config.ini (Android Studio -> AVD Mananger -> "Show On Disk") for your emulator you will see the following line:

image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\

(i.e \path-to-sdk\add-ons\addon-....)

Instead of changing this value in the config.ini file I copied

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(kernel file from the folder sdk manager installed)

to

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

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)

Solution 4 - Android

I got it fixed by running "C:\Program Files\Android\android-sdk\AVD Manager.exe" and repairing my broken device.

Solution 5 - Android

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.....

Solution 6 - Android

Short answer: try to create the same image using the old school <AndroidSDK>\AVD Manager.exe.

Working in Android Studio, running all the integrated tools, it became natural to me not to use the old managers (AVD/SDK).

In my case, I had this problem when used the new (integrated) AVD Manager to create devices with old system images (API 11 and below, as I've tested).

When I tried to use the old school AVD Manager tool (located in <AndroidSDK>\AVD Manager.exe) to create these old device images, I had success.

Solution 7 - Android

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.

Solution 8 - Android

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.

Solution 9 - Android

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.

Solution 10 - Android

  • Open Android studio.
  • Go to setting > System Setting > Android SDK
  • Get the "Android SDK Location".
  • Set the environment variable ANDROID_SDK_ROOT to this value.

It worked for me and I'm on Windows 10 and Android studio 2.3.3

Solution 11 - Android

  1. Go to "Edit the System Environment variables".
  2. Click on New Button and enter "ANDROID_SDK_ROOT" in variable name and enter android sdk full path in variable value. Click on ok and close.
  3. Refresh AVD.
  4. This will resolve error.

Solution 12 - Android

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

  1. 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.

  2. Experment on KVM based Virtulaization suggested by Google for Linux

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTed pottelView Question on Stackoverflow
Solution 1 - AndroidtseView Answer on Stackoverflow
Solution 2 - AndroidElijahView Answer on Stackoverflow
Solution 3 - AndroidAsi MugrabiView Answer on Stackoverflow
Solution 4 - AndroidairoView Answer on Stackoverflow
Solution 5 - AndroidBrandonView Answer on Stackoverflow
Solution 6 - AndroidLuanView Answer on Stackoverflow
Solution 7 - AndroidM MuliView Answer on Stackoverflow
Solution 8 - AndroidHector PasarinView Answer on Stackoverflow
Solution 9 - AndroidLukas HanacekView Answer on Stackoverflow
Solution 10 - Android3lokhView Answer on Stackoverflow
Solution 11 - AndroidRitika RanjanView Answer on Stackoverflow
Solution 12 - AndroidDaniel AdenewView Answer on Stackoverflow