2014年12月12日金曜日

Windows 7 の Android Emulator で HAXM が動かない

こんにちは。yu1rowです。

リリースされたばっかりのAndroid Studio 1.0を使ってみたんですが、その過程でWindows 7(x86)上のエミュレータでHAXM(Intel Hardware Accelerated Execution Manager)が動いてくれませんでした。
なんとか動かせるようになったので記録を残しておきます。

一般的な手順

Android SDK Managerで"Intel x86 Emulator Accelerator (HAXM installer)をインストールします。
この後、SDKのインストールされたフォルダにダウンロードされたインストーラを実行します。
{ANDROID_SDK_HOME}/extras/intel/Hardware_Accelerated_Execution_Manager/intelhaxm-android.exe

HAXMのバージョンが古い?

インストールが完了してエミュレータを実行してもウンともスンとも言わず、コマンドプロンプトから叩いてみると以下のようなエラーが発生していました。
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: HAX kernel module is not installed!
困ったぞと思って調べていたところ、Intelのサイトから最新版をDLしてきてインストールすれば良いぞという情報が。
[HAXM最新版]
一旦元のHAXMをアンインストールして、ダウンロードしたほうをインストールします。
で、これでOK!とはならなかったです。
※うまくいったって報告例もありました

Failed to configure driver

Intelのサイトから最新版(調査時点で"haxm-windows_r05")をインストールしていたら、以下のようなメッセージが表示されました。
Failed to configure driver: unknown error. Failed to open driver
インストール完了後に"intelhaxm"というサービスが起動しているはずらしいんですが、以下のコマンドを叩いて確認してみます。
> sc query intelhaxm
しかし結果は"指定されたサービスはインストールされたサービスとして存在しません。"とのこと。
またまた困ったぞと思って調べていたところ、Intelの開発者フォーラムに[Workaround Patch for HAXM Installation Error "Failed to configure driver: unknown error. Failed to open driver"]などというドンピシャっぽいエントリを発見。
[パッチのページ]
ページ内に書いてある手順に従います。
  1. ページ内のリンクからzipを落としてくる
  2. 適当なフォルダに解凍する
  3. 解凍されたファイルの"hax_extract.cmd"を、HAXMインストーラのあるフォルダにコピーする
  4. コピーした"hax_extract.cmd"を右クリックして「管理者として実行」する
  5. 権限についてのダイアログがでたら「はい」を選んで実行
これでうまくいくそうです。実際うまくいきました。
コマンドプロンプトで"sc query intelhaxm"を叩いてみて"STATE:RUNNING"って出てたら多分成功。

まぁ実は上記手順で最初はうまくいきませんでした。
コマンドプロンプトを管理者として実行して再度"hax_extract.cmd"を叩いてみると、実行結果に「まずは再起動してくれ」って書いてました。
再起動後に上記手順を行うと、今度は無事成功しました。めでたし。

0 件のコメント:

コメントを投稿