You opened AVD Manager in Android Studio and tried to start an AVD, you got
“Emulator: Process finished with exit code 1”. Following are the steps to debug
this
Find out the name of the emulator.
Click the down arrow 🔽 which is to the right of play arrow ▶️, to find out the name of the AVD. Let’s say the name is “Nexus_5X_API_28_x86”.
Try starting the AVD directly from command-line
It fails with another cryptic error, but that’s at least more actionable
1
2
3
| $(dirname $(which android))/emulator -avd Nexus_5X_API_28_x86
...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/opt/android_sdk]!
|
Let’s retry in the verbose mode to see a detailed error
1
2
3
| $(dirname $(which android))/emulator -avd Nexus_5X_API_28_x86 -verbose
...
Not a directory: /opt/android_sdk/system-images/android-28/google_apis/x86/
|
So, the system image is missing.
Install system image
1
2
3
4
5
6
| # List all possible system images.
$(dirname $(which android))/bin/sdkmanager --list
# List the images we are interested in.
$(dirname $(which android))/bin/sdkmanager --list | ack google_apis | ack android-28 | ack x86
# Install the right one using
$(dirname $(which android))/bin/sdkmanager --install 'system-images;android-28;google_apis;x86'
|
Now try starting the AVD again.
1
2
3
4
5
| $(dirname $(which android))/emulator -avd Nexus_5X_API_28_x86 -verbose
...
emulator:Probing program: /opt/android_sdk/tools/emulator64-x86
emulator:Probing program: /opt/android_sdk/tools/emulator-x86
PANIC: Missing emulator engine program for 'x86' CPU.
|
Turns out there is another version of the emulator installed in $(dirname $(dirname $(which android)))/emulator/emulator. And the emulator I was using is a stray one.
1
2
| # This works
$(dirname $(dirname $(which android)))/emulator/emulator -avd Nexus_5X_API_28_x86 -verbose
|