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っぽいしね。)
…
…
立ち上がったやんけ!
SDKはAndroid Studioですでに入れたものがちゃんと出ている。
あーでも、Android StudioでSDK Manager上げたらおかしくなるんじゃないの?と思って立ち上げてみたけどぱっと見問題なし。
とりあえずこれで無駄にディスク容量食わずに開発できそうです。
ただNDKはXamarinとAndroid Studioで要求バージョン違うので、とりあえず別個に入れてます。(あとで統一するかも)
注意点として
・XamarinでインストールしたSDK Managerは直接削除せずに「プログラムと機能」から削除すべき
・Visual StudioのインストーラーにてXamarinが入った状態で「変更」をクリックすると勝手にSDKが復活するので押さないこと(なんだこのクソ仕様)
(追記)
・Android SDKディレクトリ内のadb.exeがVisual Studioを終了しても落ちない。VS落とした後に再度Androidをビルドしようとするとうまくいかなくなるかもしれないので都度落とした方がいいかも
以上