とあるところで、Xamarin.Android の連載を書き始めました。現在、第3回なのですが、内部的にはもうちょっと先のほうまで書き上げてあります。
そこで、記事にはないのですが(敢えて外してある)、現時点の Xamarin.Android と Android SDK のバージョンの相性が悪く、現時点で最新である Xamarin 4.2.0.703 を入れただけでは、Android のデザイナが機能しません。デザイナ自体が、Android SDK 25.x 以上を欲しているので、別途 Android SDK Manager でバージョンアップする必要があります。
ところが、現時点の Xamarin.Android が、完全には 25.x には対応していないらしく、リビルドをすると以下のような意味不明な警告(エラーではない)が出ます。
文字化けしているのは、たぶんメッセージが日本語化されてしまっているのか、そもそも *.jar の中が化けてしまっているのかわからないので…
頑張って、英語OS + 英語 Visual Studio 2015 + Xamarin.Android の環境を作って、Android SDK を 25.x にアップデートしてビルドしてみると,
警告(warning)が読み取れるようになりました。
warning: C:UsersmasudaAppDataLocalXamarinMonoForAndroidAndroidSDKplatformsandroid-25android.jar(java/lang/Object.class): major version 52 is newer than 51, the highest major version supported by this compiler.
It is recommended that the compiler be upgraded.
どうやら、コンパイラとのバージョンがずれているっぽい警告が出ています。現状の Xamarin.Android がこの「52」がなんだかよくわからないのですが、
visual studio – Warning major version 52 is newer than 51, the highest major version supported by this compiler – Stack Overflow
http://stackoverflow.com/questions/38222584/warning-major-version-52-is-newer-than-51-the-highest-major-version-supported-b
を見ると、Java 8 を入れれば良いようです。確かに、現状の Xamarin.Android は Java 7 になっているので、そこの不整合のようですね。
Oracle の頁から Java 8 をダウンロードしてインストールします。Xamarin のページからは Java 7 へのリンクになっているので別途探します。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
オプション → Xamarin → Android の Java Development Kit Location の値 Java 8 のほうに変更します。
すると、無事、警告がなくなります。
一応、
- Hyper-V の Android エミュレータ
- Kindle Fire
上では動いたのですが、まだ正式対応していないみたいなので、気になる場合は Java 7 に戻して使うということで。
おまけ
ちなみに、Visual Studio 上で Xamarin.Android のデザイナを動かすと重くて仕方がないので、axml の中身だけコピーして、Android Studio で編集するという手もありますね。こっちのほうが軽く動きます。微妙に UI が違うので、使い分けが必要なんでしょうが。
あと、Hyper-V の Android エミュレータって、カメラ機能が使えるんですね。
こんな感じで写真が撮れる。