幅広い知識と幅広いスキルを求められている系システムエンジニアです。リモートワークしかやりません。

Androidエミュレーターが起動しない時の対処のうちのいくつか

Vagrant が悪さしているパターン

emulator -avd Nexus_5_Android_7

というコマンドでエミュレーターを起動しようとしたら、

emulator: ERROR: Unfortunately, there's an incompatibility between HAXM hypervisor and VirtualBox 4.3.30+ which doesn't allow multiple hypervisors to co-exist.  It is being actively worked on; you can find out more about the issue at http://b.android.com/197915 (Android) and https://www.virtualbox.org/ticket/14294 (VirtualBox)
Internal error: initial hax sync failed

というエラーが出たので、Docker を入れていたので、 こちらの記事 に従って、haxm のバージョンをあげてもダメで、Docker を終了してもダメ。

VirtualBox を起動しても VM は全部停止している。

色々調べたりして、以下のコマンドを実行して見たところ、 VirtualBox 上では起動していないけど、Vagrant 的には起動している マシンがいました。

$ vagrant global-status

id       name    provider   state    directory
-------------------------------------------------------------------------
29f8fe1  default virtualbox poweroff /Users/tmnm/dev/vagrant/EdgeWin10
7921d85  default virtualbox running  /Users/tmnm/dev/vagrant/win10
f5ca0de  default virtualbox running  /Users/tmnm/dev/vagrant/win8
d1fe4a6  default virtualbox running  /Users/tmnm/dev/vagrant/ie9
1244785  default virtualbox running  /Users/tmnm/dev/vagrant/win7

それぞれ、

vagrant halt 7921d85
vagrant halt f5ca0de
vagrant halt d1fe4a6
vagrant halt 1244785

としてあげることで、エミュレーター起動しました。

ちなみにこの状態で Docker for Mac も起動できました。

参考

やっぱり Docker が悪さしているパターン

Android Studio Canary で発生したんですが、 Android 7.1.1 / 8.0 は起動できるのに 6.0 / 5.1 が起動できないというパターンです。

以下のようなログが出ます。

Failed to sync HAX vcpu contextInternal error: Initial hax sync failed

この場合は Docker を終了させると起動しました。

参考

所感

Android はハマりどころが多い...

© 2023 @miiton