---
title: Android Studio Emulator
description: Learn how to set up the Android Emulator to test your app on a virtual Android device.
---

import ImageSpotlight from '~/components/plugins/ImageSpotlight';
import { Step } from '~/ui/components/Step';
import { Terminal } from '~/ui/components/Snippet';

If you don't have an Android device available to test with, we recommend using the default emulator that comes with Android Studio.
If you run into any problems setting it up, follow the steps in this guide.

## Set up Android Studio's tools

<Step label="1">

[Download](https://developer.android.com/studio) and install Android Studio 3.0+.

</Step>

<Step label="2">

Select **"Standard"** for the **"Install Type"** inside the wizard.

</Step>

<Step label="3">
Inside Android Studio, go to **Preferences > Appearance & Behavior > System Settings > Android SDK**.
Click on the **"SDK Tools"** tab and make sure you have at least one version of the **"Android SDK Build-Tools"** installed.

<ImageSpotlight
  alt="Android SDK build tools"
  src="/static/images/android-studio-build-tools.png"
/>
</Step>

<Step label="4">
Copy or remember the path listed in the box that says **"Android SDK Location"**.

<ImageSpotlight
  alt="Android SDK location"
  src="/static/images/android-studio-sdk-location.png"
/>
</Step>

<Step label="5">
If you are on macOS or Linux, add an [environment variable](https://developer.android.com/studio/command-line/variables#envar) pointing to the Android SDK location
in `~/.bash_profile` (or `~/.zshenv` if you use Zsh) - for example:`export ANDROID_HOME=/your/path/here`. Copy and paste these two lines to do this automatically for Bash and Zsh:

```bash
[ -d "$HOME/Library/Android/sdk" ] && ANDROID_HOME=$HOME/Library/Android/sdk || ANDROID_HOME=$HOME/Android/Sdk
echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/`[[ $SHELL == *"zsh" ]] && echo '.zshenv' || echo '.bash_profile'`
```

</Step>

<Step label="6">
On macOS, you will also need to add `platform-tools` to your `~/.bash_profile` (or `~/.zshenv` if you use Zsh) - for example: `export PATH=/your/path/here:$PATH`.
Copy and paste this line to do this automatically for Bash and Zsh:

```bash
echo "export PATH=$ANDROID_HOME/platform-tools:\$PATH" >> ~/`[[ $SHELL == *"zsh" ]] && echo '.zshenv' || echo '.bash_profile'`
```

</Step>

<Step label="7">
Reload the path environment variables by running:

```bash
source ~/`[[ $SHELL == *"zsh" ]] && echo '.zshenv' || echo '.bash_profile'`
```

</Step>

<Step label="8">

Finally, make sure that you can run `adb` from your terminal.

</Step>

## Set up a virtual device

<Step label="1">
On the Android Studio main screen, click **"More Actions"**, then **"Virtual Device Manager"** in the dropdown.

<ImageSpotlight
  alt="Android Studio configure"
  src="/static/images/android-studio-configure.png"
  containerStyle={{ paddingBottom: 0 }}
/>

If you already have a project, then the menu will show up under the three dots menu in the top right corner of the window.

<ImageSpotlight
  alt="Android Studio configure alternate"
  src="/static/images/android-studio-configure-2.png"
  containerStyle={{ paddingBottom: 0 }}
/>
</Step>

<Step label="2">
Press the **"Create device"** button.

<ImageSpotlight
  alt="Android Studio create virtual device"
  src="/static/images/android-studio-avd-manager.png"
  containerStyle={{ paddingBottom: 0 }}
/>
</Step>

<Step label="3">
  Choose the type of hardware you'd like to emulate. We recommend testing against a variety of
  devices, but if you're unsure where to start, the newest device in the Pixel line could be a good
  choice.
</Step>

<Step label="4">
  Select an OS version to load on the emulator (probably one of the system images in the
  **"Recommended"** tab), and download the image.
</Step>

<Step label="5">
  Change any other settings you'd like, and press **"Finish"** to create the virtual device. You can
  now run this device anytime by pressing the Play button in the AVD Manager window.
</Step>

### Multiple `adb` versions

Having multiple `adb` versions on your system can result in the error `adb server version (xx) doesn't match this client (xx); killing...`

This is because the adb version on your system is different from the adb version on the android sdk platform-tools.

<Step label="1">
Open the terminal and check the `adb` version on the system:

<Terminal cmd={['$ adb version']} />
</Step>

<Step label="2">
And from the Android SDK platform-tool directory:

<Terminal cmd={[
  '$ cd ~/Library/Android/sdk/platform-tools',
  '$ ./adb version'
]} cmdCopy="cd ~/Library/Android/sdk/platform-tools && ./adb version" />
</Step>

<Step label="3">
Copy `adb` from Android SDK directory to `usr/bin` directory:

<Terminal cmd={['$ sudo cp ~/Library/Android/sdk/platform-tools/adb /usr/bin']} />
</Step>
