LoginSignup
11
13

More than 5 years have passed since last update.

VisualStudio2015にXamarinを入れてみる

Last updated at Posted at 2016-04-30

VisualStudio2015でXamarinによるスマートデバイス開発がC#でできるようになったということで、自分のPCにも開発環境を構築してみようとしました。

で、この環境構築でちょっと躓いた箇所があるので、メモ残しておきます。なお、Xamarin自体のインストールはVisualStudio2015のインストーラからできますので、その後でちょっと躓いたことを書きます。

1.Android 4.4とHyper-V

Xamarinのインストール直後にVisualStudioを起動して、Androidのテンプレート「Blank App (Android)」を選択してソリューションを作ります。

で、Windows.FormsやASP.NETのソリューションを作るときと同じように、サンプルのプログラム入りのソリューションが作られるのですが、このサンプルソリューションをとりあえずデバッグ実行しようとすると、下図のようなエラーが発生します。

無題.png

メッセージの内容は、Hyper-V Virtual Machine Management serviceをスタートさせる必要があるとのこと。ここで「Windowsの機能の有効化/無効化」ダイアログからHyper-Vの機能の有効化を行えば良いと思いがちなのですが、最新版(現時点で6.0。API 23)のAndroidの開発を行う場合、Hyper-Vの設定をしてはいけません。

最新版のAndroidのエミュレーターはHyper-Vが有効だと使えないようなのです(これは後述します)。

ただ、一応Hyper-Vを有効にする手順を説明します。

下図に示すように、システム設定画面の「アプリと機能」から「プログラムと機能」→「Windowsの機能の有効化または無効化」と辿って、Windowsの機能の有効化または無効化ダイアログを開きます。

無題2.png

ここでHyper-Vの項目がツリー上に出るんですが、私の環境(SurfaceBookのWindows10)では、あらかじめチェック印がついていました。なのでインストールされているように見えるのですが、インストールされているのはHyper-Vの中でも一部の機能のみ。Hyper-V Virtual Machine Management serviceはインストールされていません(私の環境だけかもしれません。他の環境ではもしかしたらデフォルトでHyper-Vはすべてアンインストール状態なのかもしれませんね)。

なので、一度このチェックをすべて外してOKボタンを押しPCを再起動。続いて再び上図の画面を開き、今度Hyper-VのチェックをすべてつけてOKボタンを押し、もう一度PCを再起動しました。

すると、スタートメニューに「Hyper-Vマネージャー」というアプリが表示されます。

無題3.png

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

無題4.png

以上の手順でHyper-Vの準備をした後で実行すると、エミュレーターは起動します。ただ、ここで起動するエミュレーターはAndroidではなくWindows Phoneのものに見えますね。画面中にはAndroidと表示されますが。

で、ここまではいいのですが、このエミュレーター内でサンプルアプリが動きません。

なんでかな?と思って色々調べてみたんですが、どうもAndroidのAPIレベルが低いらしいです。VisualStudio2015の作るサンプルアプリはAPIレベル23以上でないと対応していないみたい。

2.Android 6.0 API 23のインストール

そこで、AndroidSDKマネージャを起動し、APIレベル23のものをインストール。VisualStudioのツールバー上のAndroidSDKマネージャボタンをクリック(下図参照)。

無題5.png

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のエミュレーターを起動させてみても、エラーが発生して起動しません。エミュレーターが起動しないから、プログラムが配置できないので「配置エラー」となってしまっているようです。

無題7.png

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

無題8.png

こういうのって、VisualStudio側からも分かるようにして欲しいんですけどねぇ。私の場合、たまたまAndroid Studio入れていたから分かったのですが。

で、Hyper-Vを無効にするには、コマンドプロンプトを管理者として実行し、以下のコマンドを実行します。

 bcdedit /set hypervisorlaunchtype off

これを実行後、念のためPCを再起動し、VisualStudio上からデバッグ実行をしていみると、無事にAndroid 6.0のエミュレーターが起動しました。

無題9.png

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13