既にAndroid Studioをインストールされている方がXamarin for Visual Studio(以降Xamarin)を試してみたい、といった場合や、XamarinからAndroid Studioのエミュレータを利用したい、といった理由で、XamarinとAndroid Studioを共存させたいケースがあるかと思います。
その際に、いくつか気を付ける必要があるため、ポイントをまとめました。
留意する点は二つあります。
Android SDKのインストールパスについて
XamarinとAndroid Studioを共存させる際、Android SDKは共有化させたいですよね?
結構ばかにならないサイズがありますし。。。
その際、注意すべき点がいくつかあります。
- XamarinとAndroid Studio、何れであってもAndroid SDKに日本語の利用は不可
- Android StudioのAndroid SDKのパスにはスペース不可
- Visual StudioのインストーラでXamarinを入れる際、「C:\Program Files」以下にインストールされ、変更できない
つまりAndroid Studioからは利用できない。。。 - この為、Android Studioからそのパスを指定すると正しく動かない
(下手するとAndroid SDKが壊れる?) - Visual StudioのインストーラはAndroid Studioがデフォルトでインストールするパスを認識してくれない
かつ、インストール先を変更することもできない残念仕様
この為、以下の手順を踏む必要があります。
- Xamarin for Visual Studioをインストールする(Android SDKはProgram Filesの下へ配置される)
- Android Studioをインストールする
この際、Android SDKはXamarinの物とは別に「スペースも日本語も含まれないパスへ」インストールしてください - Visual Studioを起動し、「オプション」->「ツール」->「Xamarin」から、Android SDKのパスを2.でインストールした箇所へインストールする
- 「コントロールパネル」->「プログラムのアンインストール」から「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
完成したらブログで公開させていただきますので、その時が来たら、良かったら使ってあげてください。
以上です。
それではまた!