tohnamanブログ

東村山に生息するWindows好きな太っちょオヤジプログラマのブログ

Android Emulator との相性・・・解決

いやー、メインPC と Android Emulator との相性が悪いったらありゃしない!

ことの発端

GW前、Prism for Xamarin.Forms ハンズオンに参加したんです。
当初の目的は、Prism メインでしたが、参加してみたら Xamarin.Forms が良かったので、
Windows10 Mobile も終了したし、Android アプリでも開発しようと思ったのです。

最初の苦難

メインPC の Visual Studio 2017 をXamarinを利用できるようにセットアップし、
ハンズオンで作成したソースコードを取り込み、ビルド、UWPとして起動
ここまでは順調でした!
しかーし!メインPC のCPUは AMD FX-8350 なのです!

どういうこと?

Visual Studioから起動するAndroid Emulator は Intel HAXM を利用したモノなのです!
Intel HAXM は、Intel の CPU機能を利用している為、AMD FX-8350を搭載した、
メインPC にはインストールできません!
そうです!Android Emulatorがインストールできません!
 ハンズオンには、買ったばかりの Surface Pro で参加していたので、
 このことは、全く知りませんでした!

苦難 その2

UWPアプリとして動作させながらXamarin.Formsの学習していましたが、
目的が Android アプリ開発 なので、Android アプリの動作確認がしたいのです!
そこで、他のAndroid Emulatorを探して見つけたのが Genymotion でした
Genymotion は、Oracle VM VirtualBox 上で動作する仮想環境なので、
インストール済みのVirtualBox で Genymotion の動作環境を構築し、
Genymotion からAndroid Emulatorを起動すると、
Visual Studio に起動中の Android Emulator が実行できる状態になりました!

やったー!

Android アプリとして起動すると念願のAndroid Emulatorで動作確認ができました!
おめでとうございます!

しかし

入力した文字を話す機能だけ動作しません!
調査した結果、VirtualBox がGenymotion で動作保証しているバージョンより新しい為、
Emulator 上で音がならないことでした

苦難 その3

先日のBuild 2018で Hyper-V で動作する Android Emulator プレビューの発表がありました
これは、Intel HAXM を使用せず Hyper-V を利用するので VirtualBox も不要です!
なので、メインPCでの利用が可能なハズです。

↓ のサイトを参考にセットアップしていたんですが・・・
Hyper-V Android emulator support | The Visual Studio Blog

どうなった?

Windowsの設定が完了し、Android Emulatorを作成すると・・・
mksdcard.exe がウィルスバスターに駆除されて、作成に失敗しました

現在

失敗した翌日、再チャレンジしたらAndroid Emulatorを作成できました
ウィルスバスターの定義ファイルが更新されたことで、大丈夫になったようです

これから、追加したAndroid Emulatorの動作確認及びデバッグ実施を試す予定です

何か想定外の挙動があった場合は、続報を書きます。

2018/06/27 追記 
Build 2018ので発表したAndroid Emulatorを利用するには、
Visual Studio 15.8 Preview を利用する必要がありました!
ブログの最初に書いているのに読み飛ばしていました。
Visual Studio 15.8 Preview 3 をインストールし、いろいろいろいろ試してみましたが、
結局どれも成功しませんでした。

初心に戻りブログを隅々まで確認すると、コメントに・・・

Hannah Juarez [MSFT]
Hi Himadri! Thanks for trying out the preview. The Windows Hypervisor Platform supports AMD machines. However, the Android Emulator with WHPX is not supported on AMD.

Windows Hypervisor PlatformはAMDマシンをサポートしています。
ただし、WHPXのAndroidエミュレータAMDではサポートされていません。

はい、最初からブログに答えがありました。
ということで、苦難の道は続くよどこまでも・・・

現状で可能なのは、

  • 音を犠牲にして、VirtualBox + Genymotion を利用して開発する
  • 常に実機を利用して開発する
  • 常にSurface ProでIntel HAXMのAndroid Emulatorを利用して開発する

のどれかになります。

結局、解決しませんでした

WHPXのAndroidエミュレータAMDサポートを待ちたいですが、するんだろうか?

2018/07/14 追記
AMD CPUをサポートしたAndroidエミュレータのリリース
android-developers.googleblog.com
の吉報がありましたが、まだ開発に利用できる状況ではありませんでした。
ですが、以前と違い起動して配置したアプリが動作しました!

起動したエミュレータを停止後に開始すると、エミュレータが反応しなくなります
この為、エミュレータ起動しても動作しない場合は、エミュレータ作成を行う必要があります

リリースしたばかりなので、情報が少ないので、ゆっくり様子をみます

2019/06/08 追記
最近になって何かつくりたい欲求がでてきたので、
以前いろいろと失敗していた Androidエミュレータの動作確認をしてみました。
すると

 サクッと動きました!

何度も何度も失敗してたのに・・・
一応、動作環境ですが、

動作確認前に、アップデートできるものは最新にしています。
これで Androidアプリの デバッグ を気軽にできるので安心です

Visual Studio 2019 もでたし、.Net Core で WPF / Windows Forms のサポートされるようですし、
いろいろ試したいです