Androidのエミュレータも最近バージョンアップが進んでだいぶ快適に動作するようになりましたね。
OS2.x時代の全く起動してくれなかった頃が懐かしい今日この頃です。
が、新しいWindows PCで意気揚々とエミュレータを実行したら起動時にエラーが出て全く起動できなかったことがあったので、その対処法をまとめました。
事象
Windows PCでAndroidのエミュレータを起動しようとしたら以下のエラーで怒られる。
Open the vm device error:\.\hax_vm00, ec:2
Hax is enabled
Hax ram_size 0x60000000
Failed to open vm 0
Failed to create HAX VM
No accelerator found.
failed to initialize HAX: Invalid argument
原因
Windowsの(IntelのCPUを搭載している)PCでは、HAXMという機構を使ってAndroidのエミュレータを起動しているのだが、どうやらWindowsの仕様によりHAXMを他のユーザーが起動していると現在のユーザーでは使用できない、みたいなのがあるらしい。
自分専用のPCで自分が管理者で使っている、という場合であれば問題ないのだが(個人PCはほとんどこのパターンだと思うけれど)、共有PCで他のユーザーがログインしている状態で自分のユーザーでログインし直したり、貸与されているPCで自分が管理者ではない(管理者ユーザーで起動されて、自分のユーザーとしてログインする)みたいなパターンではこれが起こり得る。
対処法
- その1:自分がHAXMを起動できる場合
- 他のユーザーが起動しているHAXMを一旦停止し、自分のユーザーで起動し直す
- その2:自分がHAXMを実行できない場合(おそらく管理者権限でHAXMが実行されている場合)
- 管理者としてコマンドプロンプトを起動し、そこからエミュレータを起動する
intelhaxmの起動、停止方法
コマンドプロンプトを開いて以下を実行する
停止
sc stop intelhaxm
起動
sc start intelhaxm
※ 管理者として実行したい場合は、コマンドプロンプトを開くときに「右クリック」>「管理者として実行」を選択する。
コマンドプロンプトからのエミュレーターの起動方法
$ANDROID_SDK_HOME\tools\emulator -avd エミュレータの名前
参考
- この事象の対処法
- scコマンドについて
- コマンドラインでのエミュレーターの実行について