もっふもふの電子回路

備忘録的なあれ

XamarinとAndroid Studioの共存

背景

環境:
Windows 10
Visual Studio Community 2017

Xamarinでアプリを作ろうとしてインストールしたけどベースにしたいアプリがAndroid Studioで組まれたものだったので、とりあえずXamarin入れた後にAndroid Studio入れて、SDKはXamarinで入れたものを使おうとしたらパスにスペースが入ってたらあかんで!って言われてどうにかSDKを共存させようとした話。
SDKサイズ大きいのでね、節約したいですよね。

Xamarin側のSDKパスを変更

ツール->オプション->Xamarin->Androidの設定
よりパスをAndroid Studioで入れたものに変更
デフォルトだと C:\Users\xxxx\AppData\Local\Android\sdk

SDK ManagerのGUIが上がらない

上記パスに変更したらGUIが立ち上がらなくなった。
いろいろ調べても解決しなかったので途方に暮れていたらSDKディレクトリ内のSDK Readme.txtに書いてあった。

解決

To start the SDK Manager, please execute the program "SDK Manager.exe".

From the command-line you can also directly trigger an update by
executing:
  tools\android.bat update sdk --no-ui

…つまりあれか、Android Studioで入れたやつは勝手に"--no-ui"オプションをつけて立ち上げているのでは?と思い試しにXamarinで入れたSDKディレクトリ内のandroid.batをAndroid Studioで入れたSDK内に上書きした。
(.batの差分とったけどそれっぽい違いがあった。Android Studioから起動するSDK Managerは専用のGUIっぽいしね。)

f:id:gadgetcat:20170421121403p:plain
立ち上がったやんけ!

SDKAndroid Studioですでに入れたものがちゃんと出ている。

あーでも、Android StudioSDK Manager上げたらおかしくなるんじゃないの?と思って立ち上げてみたけどぱっと見問題なし。



とりあえずこれで無駄にディスク容量食わずに開発できそうです。
ただNDKはXamarinとAndroid Studioで要求バージョン違うので、とりあえず別個に入れてます。(あとで統一するかも)

注意点として

・XamarinでインストールしたSDK Managerは直接削除せずに「プログラムと機能」から削除すべき
Visual StudioインストーラーにてXamarinが入った状態で「変更」をクリックすると勝手にSDKが復活するので押さないこと(なんだこのクソ仕様)
(追記)
Android SDKディレクトリ内のadb.exeがVisual Studioを終了しても落ちない。VS落とした後に再度Androidをビルドしようとするとうまくいかなくなるかもしれないので都度落とした方がいいかも

以上