VisualStudio2015でXamarinによるスマートデバイス開発がC#でできるようになったということで、自分のPCにも開発環境を構築してみようとしました。
で、この環境構築でちょっと躓いた箇所があるので、メモ残しておきます。なお、Xamarin自体のインストールはVisualStudio2015のインストーラからできますので、その後でちょっと躓いたことを書きます。
1.Android 4.4とHyper-V
Xamarinのインストール直後にVisualStudioを起動して、Androidのテンプレート「Blank App (Android)」を選択してソリューションを作ります。
で、Windows.FormsやASP.NETのソリューションを作るときと同じように、サンプルのプログラム入りのソリューションが作られるのですが、このサンプルソリューションをとりあえずデバッグ実行しようとすると、下図のようなエラーが発生します。

メッセージの内容は、Hyper-V Virtual Machine Management serviceをスタートさせる必要があるとのこと。ここで「Windowsの機能の有効化/無効化」ダイアログからHyper-Vの機能の有効化を行えば良いと思いがちなのですが、最新版(現時点で6.0。API 23)のAndroidの開発を行う場合、Hyper-Vの設定をしてはいけません。
最新版のAndroidのエミュレーターはHyper-Vが有効だと使えないようなのです(これは後述します)。
ただ、一応Hyper-Vを有効にする手順を説明します。
下図に示すように、システム設定画面の「アプリと機能」から「プログラムと機能」→「Windowsの機能の有効化または無効化」と辿って、Windowsの機能の有効化または無効化ダイアログを開きます。

ここでHyper-Vの項目がツリー上に出るんですが、私の環境(SurfaceBookのWindows10)では、あらかじめチェック印がついていました。なのでインストールされているように見えるのですが、インストールされているのはHyper-Vの中でも一部の機能のみ。Hyper-V Virtual Machine Management serviceはインストールされていません(私の環境だけかもしれません。他の環境ではもしかしたらデフォルトでHyper-Vはすべてアンインストール状態なのかもしれませんね)。
なので、一度このチェックをすべて外してOKボタンを押しPCを再起動。続いて再び上図の画面を開き、今度Hyper-VのチェックをすべてつけてOKボタンを押し、もう一度PCを再起動しました。
すると、スタートメニューに「Hyper-Vマネージャー」というアプリが表示されます。

これをクリックしてHyper-Vマネージャを立ち上げ、仮想マシンのところに表示されている「VS Emulator....」を起動すれば良いと思います。

以上の手順でHyper-Vの準備をした後で実行すると、エミュレーターは起動します。ただ、ここで起動するエミュレーターはAndroidではなくWindows Phoneのものに見えますね。画面中にはAndroidと表示されますが。
で、ここまではいいのですが、このエミュレーター内でサンプルアプリが動きません。
なんでかな?と思って色々調べてみたんですが、どうもAndroidのAPIレベルが低いらしいです。VisualStudio2015の作るサンプルアプリはAPIレベル23以上でないと対応していないみたい。
2.Android 6.0 API 23のインストール
そこで、AndroidSDKマネージャを起動し、APIレベル23のものをインストール。VisualStudioのツールバー上のAndroidSDKマネージャボタンをクリック(下図参照)。

AndroidSDKマネージャが開くので、Android 6.0(API 23)のものを一通りインストールします。それとあともう一つ。SDKマネージャ中の一番下のほうにある「Inten x86 Emulator Accelerator (HAXM installer)」もインストールしてください。Android 6.0のエミュレーターは、これがないと動かないみたいなんです。
選択した項目のインストールがすべて完了したあとに、VisualStudioのソリューションエクスプローラ上にある「Main.axml」を開き、デザイナを表示させてみてください。APIレベル23以上のものがインストールされていれば、デザイナが正常に開くと思います。私の環境では、Xamarinインストール直後の状態ではAPIレベルが低いもののため、このデザイナ画面を開こうとするとエラーメッセージが表示されます。
これでようやくサンプルアプリが起動できると思ったのですが、うまくいきません。
デバッグ実行ボタンのところが、ちゃんとAndroid 6.0、API 23のものになっていることは確認しているのですが、「配置エラー」というメッセージが表示されてしまいます。
このエラーの原因となっているのが、先ほど設定したHyper-Vです。Android 6.0のエミュレーターは、Hyper-Vが有効だと動きません。
試しにAndroid Virtual Device Managerを開き、作成しているAndroid 6.0のエミュレーターを起動させてみても、エラーが発生して起動しません。エミュレーターが起動しないから、プログラムが配置できないので「配置エラー」となってしまっているようです。

エラーメッセージを見るとHyper-Vが原因には見えないのですが、Android Studioから開くAVD Managerでは、Hyper-Vを無効にしないと起動できないことを伝えるエラーメッセージが表示されます(すいません、その画面のハードコピーをとり損ねてしまいました)。

こういうのって、VisualStudio側からも分かるようにして欲しいんですけどねぇ。私の場合、たまたまAndroid Studio入れていたから分かったのですが。
で、Hyper-Vを無効にするには、コマンドプロンプトを管理者として実行し、以下のコマンドを実行します。
bcdedit /set hypervisorlaunchtype off
これを実行後、念のためPCを再起動し、VisualStudio上からデバッグ実行をしていみると、無事にAndroid 6.0のエミュレーターが起動しました。
