たねやつの木

Photos and Programming

"Missing emulator engine program for 'x86' CPU"が発生する場合の対処法

コマンドライン上からAndroidの仮想端末を起動使用としたときにタイトルのように、PANIC: Missing emulator engine program for 'x86' CPU.とエラーが表示されて仮想端末を起動できない場合がある。その対処法についてメモ。

例:

> emulator -list-avds
Pixel_API_27

> emulator @Pixel_API_27
PANIC: Missing emulator engine program for 'x86' CPU.
# 起動できない!

結論

$ANDROID_HOME\emulatorへのパスを$ANDROID_HOME\toolsよりも先に読み込むようにする。

*$ANDROID_HOMEはWindowsの場合C:\Users\[username]\AppData\Local\Android\Sdk\あたりを指す。

解決法

emulator(.exe)コマンドのパスが通っている場所を確認。

Linux/MacOSの場合、whichコマンドを使用すれば即座にコマンドのパスがわかるが、Windowsのコマンドプロンプトの場合に同様のコマンドが存在しない。。。なぜなんだorz

whereコマンドを使用してファイルがどのフォルダに存在しているかを確認することができるのでそれでいったん確認してみる。

> where emulator
C:\\省略\Android\Sdk\emulator\emulator.exe
C:\\省略\Android\Sdk\tools\emulator.exe

以下の2箇所にemulator.exeが存在しているはずである。このうちtoolフォルダのほうのemulator.exeで実行するとタイトルのエラーが発生する。

toolフォルダのemulator.exeが実行される原因は、環境変数のPATHの読み込みがtoolフォルダのほうが先に行われているためである。

[Win]キー押下 > 「環境変数」と入力して環境変数の編集を実行 > Pathをダブルクリック > toolsとemulatorの順番を入れ替えるで完了!

ここの値は特にAndroid Studioをインストールしたときにしか変更していないはずなのでデフォルトでこうなるのかもしれない。。