Android Emulator Error Message: "PANIC: Missing emulator engine program for 'x86' CPUS."
android, android-emulator
Solution
If you are using macOS, add both Android SDK `emulator` and `tools` directories to the path:
Step 1: In my case the order was important, first `emulator` and then `tools`.
export ANDROID_SDK=$HOME/Library/Android/sdk
export PATH=$ANDROID_SDK/emulator:$ANDROID_SDK/tools:$PATH
Step 2: Reload you `.bash_profile` Or `.bashrc` depending on OS
Step 3: Get list of emulators available: `$emulator -list-avds`
Step 4: Launch emulator from the command line and Replace `avd` with the name of your emulator `$emulator @avd`
Don't forget to add the `@` symbol.
This was tested with macOS High Sierra 10.13.4 and Android Studio 3.1.2.
Problem
I am trying to run an Android Emulator by using AVD Manager. I have a Macbook Pro Retina. Installed the Haxm driver direct from intel page. No emulator is working. All get the same "error" message. Running Command (This error was when i used Homebrew for installing Android-sdk and Android-platform-tools | anyone who get the same problem should remove this or look where the conflict is) ``` export ANDROID_EMULATOR_DEBUG=1 test20 emulator:Found AVD name 'test20' emulator:Found AVD target architecture: x86 emulator:Looking for emulator-x86 to emulate 'x86' CPU emulator:Probing program: ./emulator-x86 emulator:Probing path for: emulator-x86 emulator:Found target-specific emulator binary: /usr/local/bin/emulator-x86 emulator:Probing for: /usr/local/bin/libOpenglRender.dylib emulator:Probing for: /usr/local/bin/lib/libOpenglRender.dylib emulator:Probing for: /usr/local/lib/libOpenglRender.dylib emulator:Probing for: /usr/local/bin/lib64OpenglRender.dylib emulator:Probing for: /usr/local/bin/lib/lib64OpenglRender.dylib emulator:Probing for: /usr/local/lib/lib64OpenglRender.dylib emulator:Could not find OpenGLES emulation host libraries! emulator: ERROR: This AVD's configuration is missing a kernel file!! emulator -avd test21 emulator:Found AVD name 'test21' emulator:Found AVD target architecture: x86_64 emulator:Looking for emulator backend for x86_64 CPU emulator:Probing program: ./emulator-x86_64 emulator:Probing path for: emulator-x86_64 emulator:Looking for emulator-x86 to emulate 'x86_64' CPU emulator:Probing program: ./emulator-x86 emulator:Probing path for: emulator-x86 PANIC: Missing emulator engine program for 'x86_64' CPUS. ``` After I fixed the problem with Homebrew: I tried a bit around and found this: ``` emulator64-x86 -avd test20 Creating filesystem with parameters: Size: 69206016 Block size: 4096 Blocks per group: 32768 Inodes per group: 4224 Inode size: 256 Journal blocks: 1024 Label: Blocks: 16896 Block groups: 1 Reserved block group size: 7 Created filesystem with 11/4224 inodes and 1302/16896 blocks emulator: ERROR: Could not load OpenGLES emulation library: dlopen(lib64OpenglRender.dylib, 1): image not found emulator: WARNING: Could not initialize OpenglES emulation, using software renderer. HAX is working and emulator runs in fast virt mode qemu: could not load PC BIOS 'bios.bin' ``` For all who has the same problem, maybe these steps help: Run your Emulator in Debug mode: ``` export ANDROID_EMULATOR_DEBUG=1 emulatorName ``` If there is a path that look strange check for other installations like Homebrew and remove the conflict (uninstall one) When the library is missing you need to export the variable: ``` export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_HOME/tools/lib ``` And when error "qemu: could not load PC BIOS 'bios.bin'" appears, one fix is to run the emulator with the full path: ``` /Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20 In your case it is maybe a other path. ```