AndroidエミュレーターのBlueStacksをHyper-V環境で動かす
VSCodeを使っているとWSL2が便利すぎて、もはや手放せなくなりました。このWSL2の基盤となっているHyper-Vが仮想化支援機能を占有しているせいで同じ機能を使っているAndroidエミュレーターが軒並み動かないのです。
と思ったら、BlueStacks for Hyper-Vなるものが公開されていたのでジャンピングフラッシュしながらインストール。
しかし喜びも束の間、インストール直後は快適に動くんだけど、二度は動かないという謎現象にぶち当たってしまった。
上記のページを見るとWindowsファイアウォールを解放しろと書いてありますが、やってもうまくいきません。
どうやらBlueStacksの使っているIPアドレスがページのものとは違うらしい・・・。ということで調べて設定してみた。
まず、スタートメニューの検索に「ネットワーク接続の表示」と入れてネットワークアダプタの一覧を出します。すると vEthernet (BluestacksNetwo) という仮想アダプタが表示されます。このIPv4のプロパティにBlueStacksが使うIPアドレスとサブネットマスクが書かれています。
次に検索から「セキュリティが強化された Windows Defender ファイアウォール」と入れて出てきたウィンドウの左ペインから「受信の規則」を選択します。「BlueStacks Service Hyper-V」を選択して、プロパティをみると以下のような設定になっています。
さっきのIPアドレスを発信元とする通信を許可したいのでしょうが、172.18.48.0/20ではレンジが異なるので許可できていません・・・。ここの値を 172.23.0.0/20に書き換えればokです。
これで2回目以降の起動でも動くようになりました。それでも動かないときは管理者権限なら起動できるようです。