Troubleshooting and known issues for Android Emulator and system images

This page lists known issues, workarounds, and troubleshooting tips for the Android Emulator.

If the emulator runs but performs poorly in general, you might need to configure hardware acceleration for the emulator. If you encounter an issue not listed here or are unable to successfully use a workaround listed here, please report a bug.

Checking for adequate disk space

To avoid crashes and hangs caused by not having enough free disk space, the emulator checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free. If the emulator fails to start for you, check to see that you have adequate free disk space.

Antivirus software

Because many security and antivirus software packages work by monitoring every read and write operation, use of such software can decrease performance of tools like the Android Emulator.

Many antivirus packages provide the ability to add specific applications to a list of trusted applications, which enables these applications to operate without performance degradation. If you are experiencing poor performance with saving or loading of AVD snapshots, you may improve this performance by adding the Android Emulator application as a trusted application in your antivirus software.

The performance impact differs between various antivirus software packages. If you have additional antivirus software installed beyond that which is included with your operating system, you can run simple tests to determine which antivirus software has a greater performance effect on emulator load and save operations.

Some antivirus software may be incompatible with the Android Emulator.

If you're using Avast software and are having trouble running the Android Emulator, try disabling Use nested virtualization when available and Enable Hardware assisted virtualization in the Avast Troubleshooting settings. In addition, after Avast hardware virtualization is disabled, ensure that HAXM is set up properly again with a full re-installation of the latest HAXM from the SDK Manager.

HAXM on older, unsupported versions of Mac OS

If you are using Android Emulator on older, unsupported versions of Mac OS X (such as 10.9), then you may need to use an older version of HAXM (6.1.2), too.

Android Emulator runs slowly after an update

A number of external factors can cause the Android Emulator to begin running slowly after an update. To begin troubleshooting, we recommend the following steps:

  • If you have an Intel GPU (and in particular, the Intel HD 4000), ensure you have downloaded and installed the latest Intel graphics driver.
  • If your machine has both an Intel HD 4000 GPU and a discrete GPU, disable the Intel HD 4000 GPU in Device Manager to ensure you are using the discrete GPU.
  • Try running the emulator using the -gpu angle, -gpu swiftshader, or -gpu guest modes. For more information about configuring graphics acceleration options on the command line, see Configure hardware acceleration.
  • Ensure that your router is not using IPv6 addresses if you do not have an IPv6 connection.

If you are still experiencing problems with the Android Emulator running slowly, Report a bug, including the necessary Android Emulator Details so we can investigate.

Windows: Free RAM and commit charge

When the emulator starts, it needs to initialize the Android guest operating system's RAM. On Windows, the emulator asks Windows to account for the full size of guest memory at start time, even though during actual operation, the memory may be paged in on demand. The emulator requests the full amount of guest memory at start time because Windows is conservative in ensuring that there is enough physical RAM and pagefile available to hold the entire potential working set; this prepares for the worst case, in which all guest memory is touched quickly, without any opportunity to discard or otherwise free memory.

Sometimes, when the emulator asks Windows to account for this full guest memory size, the request exceeds the current commit limit, which is the total of the available physical RAM and pagefile. In this case, Windows can't guarantee that the worst-case working set will fit in either physical RAM or pagefile, and the emulator fails to start.

In typical cases, the amount of hard drive space allocated for the pagefile plus physical RAM is more than enough for most use cases of the emulator. However, if you experience failures to start the emulator because of exceeding the commit limit, we recommend examining the current commit charge, which can be seen in the Performance tab in the Windows Task Manager. (To open the Task Manager, press Ctrl+Shift+Esc.)

You can lower the likelihood of exceeding the commit limit in various ways:

  • Free physical RAM before launching the emulator by closing unused applications and files.
  • Disable third-party memory management and memory compression utilities. These utilities can inefficiently cause an excess commit charge and bring your system closer to the commit limit.
  • Use a system managed size for the Windows pagefile, which can more flexibly and dynamically increase the pagefile size (and therefore the commit limit) in response to increased demand from the emulator and other applications.

    For more information on commit charges and why a flexible setting works best, see this Microsoft article.

Multi-touch does not work in tool window

Multi-touch gestures, including two-finger panning, don't work when the emulator is running in a tool window, as it does by default. To enable them, you need to launch the emulator in a separate window.

Emulator degrades bluetooth audio output

If you are using a bluetooth headset, you might notice that the bluetooth headphone audio output degrades when the emulator runs (issue [#183139207][39]{:.external}). This happens because when the emulator launches, it turns on the headset's microphone, which causes the headset to switch the duplex mode, with reduced quality. To avoid this, you can disable the microphone in the emulator by adding hw.audioInput=no to the config.ini file of the Android Virtual Device (AVD). To find an AVD's config.ini file, go to the AVD in the Device Manager, click on its overflow menu and select Show on Disk.

Windows: Emulator fails to launch if there is unicode in the AVD name

On Windows, when the Device Manager creates an Android Virtual Device (AVD), it by default creates it at C:\Users\<name>\.android\avd. However, if the AVD name (<name>) has unicode, the emulator cannot launch the AVD properly using this default location. To solve this issue, update the emulator (Tools > SDK Manager); this issue is fixed in Emulator 31.3.6 and higher. Alternatively, to work around this issue, set the environment variable ANDROID_SDK_HOME to a custom directory before creating an AVD. For example, create the directory C:\Android\home and then set ANDROID_SDK_HOME to this newly created directory. To learn more, see Environment variables.

Embedded emulator window too small

On machines with lower resolution, such as 1024x768, it can be difficult to read the emulator screen when it runs in a tool window in Android Studio. To give the emulator more space, close the Device Manager tool window, if it's open; or, pull the emulator window out of Android Studio: in the emulator window, click on Settings > View Mode and select Window instead of Dock Pinned.

Error: vulkan-1.dll cannot be found

If the emulator fails to launch due to the error vulkan-1.dll cannot be found, you probably need to update the emulator. To update the emulator in Android Studio, go to Tools > SDK Manager and install the latest stable version of Android platform. Alternatively, if you don't need any apps that use the [Vulkan][/ndk/guides/graphics/getting-started] graphics library, you can turn off Vulkan by launching the emulator from the command line with the flag -feature -Vulkan.

No internet: server DNS address cannot be found

If the emulator cannot connect to the internet, try launching the emulator from the command line using the option -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,,”. This command supplies a comma-separated list of Google Public DNS IP addresses. For more information about Google Public DNS, see Google Public DNS for your devices.

No internet: DNS resolution issues

Sometimes DNS addresses in the /etc/resolv.conf file don't work properly. You can work around this issue by launching the emulator from the command line using the option -dns-server or -dns.server 2001:4860:4860::8888 to connect over an IPv6-only network.

Unable to create a snapshot

Creating a snapshot of the emulator that includes the Vulkan graphics library is not supported. To run the emulator without Vulkan, launch the emulator from the command line with the flag -feature -Vulkan. Alternatively, you can uninstall and avoid using apps with Vulcan (such as Chrome on API 30 or higher) if you want to use snapshots as part of your development workflow.

Cannot open webpage correctly

Starting with API level 30, Chrome uses the Vulkan graphics library as its rendering backend, and could have compatibility issues on certain machines. If Chrome does not render correctly for you, try to launch the emulator from the command line with the flag -feature -Vulkan.

Intel HAXM hypervisor does not fully support pre-Intel iX CPUs

If your computer has a pre-Intel iX CPU and the Intel HAXM hypervisor, you'll probably experience performance issues with the emulator. This is because the emulator is unable to use hardware acceleration to improve performance on these older machines. If you are using a pre-Intel iX CPU, you might have a better testing experience if you use a physical device instead of the emulator.

Hypervisors cannot emulate certain CPU features required by x86 Android systems

Hypervisors generally cannot emulate certain CPU features, such as Streaming SIMD Extensions (SSE), required by x86 Android systems.

Android Virtual Devices fail to launch on ChromeOS

On ChromeOS, Android Virtual Devices (AVDs) might fail to launch because the libnss3 dependency is missing. To launch the AVDs successfully, run sudo apt install libnss3 to manually install the libnss3 library.