Androidエミュレータ起動時の"HAXM must be updated (version 1.1.1 < 6.0.1)"エラーの対処方法

 Windows にインストールした Android Studio(SDK)の Android Virtual Device(AVD) Manager から Intel Atom (x86) のエミュレータを起動しようとした時に、「HAXM must be updated (version 1.1.1 < 6.0.1)」というエラーが発生することがあります。

 Andorid SDK Manager で Extras の「Intel x86 Emulator Accelerator (HAXM installer)」が「installed」になっていても発生します。

 単純に最新版で更新すれば解決する筈ですので、補足情報を含めて手順を見ていきましょう。

 ちなみに、今回の記事は前提を把握している人向けですので、細かい説明は省きます。ご了承下さい。

スポンサーリンク

読み込み中です。少々お待ち下さい

エラーの詳細

 起動時に表示される内容は、以下のようになります(バージョンにより、内容が異なる場合があります)。

ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAXM must be updated (version 1.1.1 < 6.0.1).

「HAXM をアップデートしなさい」と怒られているので、唯々諾々と更新しましょう。

インストーラの場所

 まず、Andorid SDK Manager で Extras の「Intel x86 Emulator Accelerator (HAXM installer)」が「installed」になっていることを確認します。

 アップデートに使うインストーラは、以下のフォルダに存在します。

(Android SDK のルート)/extras/intel/Hardware_Accelerated_Execution_Manager

 バージョンによって、フォルダ名が多少異なる場合があります。

現在のバージョンを調べる

 上記フォルダに存在する「silent_install.bat」を使って、現在インストールされているバージョンを調べることができます。

 コマンドプロンプトで、以下のように「-v」オプションをつけて実行してください。

silent_install.bat -v

「silent_install」には、これ以外にもいくつかオプションが用意されています。詳しくは、「-h」オプションでヘルプを出力してください。

HAXM をアップデートする

 上記フォルダの「intelhaxm-android.exe」を実行します。

実行画面

 バージョンによって、ファイル名が異なる場合があります。

Hyper-V を無効化する

 更新が成功したとしても、開発環境として Windows 10 等を利用していると、今度は以下のようなエラーが発生する場合があります。

 CPU に Intel Atom を選択していると、Hyper-V と共存できません。

 起動するには、前者のエラーメッセージが教えてくれているように、管理者としてコマンドプロンプトを開き、以下のコマンドを実行して Hyper-V を無効化する必要があります。

bcdedit /set hypervisorlaunchtype off

 設定は、再起動後に反映されます。

 ただし、このままだと今度は Hyper-V が使えなくなってしまいます。

 前回の記事にも書きましたが、Hyper-V を有効に戻す場合は、以下のコマンドを実行して Windows を再起動してください。

bcdedit /set hypervisorlaunchtype auto

 ちなみに、Android エミュレータの設定で CPU に ARM を選択すれば、物凄く遅いですが Hyper-V が有効なままでも起動は可能です。

おわりに

 クライアントとしてしか使ったことが無いんですが、開発でも BlueStacksGENYMOTIONAndy なんかを利用した方が良いのかも知れませんね。

 まぁ、お金かかっちゃいますけど。

この記事をシェア
  • このエントリーをはてなブックマークに追加
  • Share on Google+
  • この記事についてツイート
  • この記事を Facebook でシェア