nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

XamarinとAndroid Studioを共存させる方法

既にAndroid Studioをインストールされている方がXamarin for Visual Studio(以降Xamarin)を試してみたい、といった場合や、XamarinからAndroid Studioのエミュレータを利用したい、といった理由で、XamarinとAndroid Studioを共存させたいケースがあるかと思います。
その際に、いくつか気を付ける必要があるため、ポイントをまとめました。

留意する点は二つあります。

Android SDKのインストールパスについて

XamarinとAndroid Studioを共存させる際、Android SDKは共有化させたいですよね?
結構ばかにならないサイズがありますし。。。

その際、注意すべき点がいくつかあります。

  1. XamarinとAndroid Studio、何れであってもAndroid SDKに日本語の利用は不可
  2. Android StudioのAndroid SDKのパスにはスペース不可
  3. Visual StudioのインストーラでXamarinを入れる際、「C:\Program Files」以下にインストールされ、変更できない
    つまりAndroid Studioからは利用できない。。。
  4. この為、Android Studioからそのパスを指定すると正しく動かない
    (下手するとAndroid SDKが壊れる?)
  5. Visual StudioのインストーラはAndroid Studioがデフォルトでインストールするパスを認識してくれない
    かつ、インストール先を変更することもできない残念仕様

この為、以下の手順を踏む必要があります。

  1. Xamarin for Visual Studioをインストールする(Android SDKはProgram Filesの下へ配置される)
  2. Android Studioをインストールする
    この際、Android SDKはXamarinの物とは別に「スペースも日本語も含まれないパスへ」インストールしてください
  3. Visual Studioを起動し、「オプション」->「ツール」->「Xamarin」から、Android SDKのパスを2.でインストールした箇所へインストールする
  4. 「コントロールパネル」->「プログラムのアンインストール」から「Android SDK Tools」をアンインストールする

これでAndroid SDKを共有した、XamarinとAndroid Studioの共存が可能になるはずです。
めんどくさいですね。

Hyper-VとAndroid Studioのエミュレータの同時実行不可

Android Studioのエミュレータがというか、Intel HAXM(Android Studioをインストールすると利用可能になるエミュレータの基盤技術)を利用するにはCPUの仮想化支援機能を利用する必要があります。
しかしCPUの仮想化支援機能は、Hyper-Vでも必要となるため同時利用ができません。
しかも、Hyper-VでVMを起動していなくても、有効にしているとHyper-Vが仮想化支援機能を占有してしまいます。
そのため、Hyper-Vが有効な状況だと、CPUの仮想化支援機能を利用するその他のアプリケーションを利用することができません。

エミュレータはVisual Studio付属の物でもよいのですが、あちらはGoogle Play Serviceが標準では有効になっていませんが、Android Studioのエミュレータであれば高速でGoogle Play Serviceも利用できます。
でも、Hyper-Vをアンインストールしちゃうとそれはそれで不便です。

そんな時に、ちょっとだけ便利になるのが、Hyper-Vを有効・無効を切り替える方法です。
切り替えるのに、PCの再起動が必要ですが、一応同居(って言えるかちょっと微妙)できます。

方法は簡単です。

まず、コマンドプロンプトを管理者権限で開いてください。
管理者権限が必要なことに気が付かず、しばらくハマったのは恥ずかしい思い出。。。

開いたら以下のコマンドでHyper-Vを無効化できます。

bcdedit /set hypervisorlaunchtype off

有効にする場合は、以下のコマンドを実行してください。

bcdedit /set hypervisorlaunchtype auto

その後、PCを再起動することでHyper-Vの有効・無効の状態を変更できます。
なお、現在の状態を確認するには以下のコマンドを利用してください。

bcdedit

hypervisorlaunchtypeがAutoになっていれば有効、Offになっていれば無効です。

これで、エミュレータを切り替えて利用できるはずです。

ちなみに今、hypervisorlaunchtypeの確認と状態変更するためのアプリを作成しているので、完成したら公開しようと思っています。
が、いつ完成するかは謎ですw
完成したらブログで公開させていただきますので、その時が来たら、良かったら使ってあげてください。

以上です。
それではまた!