Xamarin.Android でビルドすると意味不明な警告が頻発する場合

とあるところで、Xamarin.Android の連載を書き始めました。現在、第3回なのですが、内部的にはもうちょっと先のほうまで書き上げてあります。

そこで、記事にはないのですが(敢えて外してある)、現時点の Xamarin.Android と Android SDK のバージョンの相性が悪く、現時点で最新である Xamarin 4.2.0.703 を入れただけでは、Android のデザイナが機能しません。デザイナ自体が、Android SDK 25.x 以上を欲しているので、別途 Android SDK Manager でバージョンアップする必要があります。

image

ところが、現時点の Xamarin.Android が、完全には 25.x には対応していないらしく、リビルドをすると以下のような意味不明な警告(エラーではない)が出ます。

image

文字化けしているのは、たぶんメッセージが日本語化されてしまっているのか、そもそも *.jar の中が化けてしまっているのかわからないので…

頑張って、英語OS + 英語 Visual Studio 2015 + Xamarin.Android の環境を作って、Android SDK を 25.x にアップデートしてビルドしてみると,

image

警告(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

image

オプション → Xamarin → Android の Java Development Kit Location の値 Java 8 のほうに変更します。

image

すると、無事、警告がなくなります。

image

一応、

  • Hyper-V の Android エミュレータ
  • Kindle Fire

上では動いたのですが、まだ正式対応していないみたいなので、気になる場合は Java 7 に戻して使うということで。

おまけ

ちなみに、Visual Studio 上で Xamarin.Android のデザイナを動かすと重くて仕方がないので、axml の中身だけコピーして、Android Studio で編集するという手もありますね。こっちのほうが軽く動きます。微妙に UI が違うので、使い分けが必要なんでしょうが。

image

あと、Hyper-V の Android エミュレータって、カメラ機能が使えるんですね。

image

こんな感じで写真が撮れる。

カテゴリー: Xamarin, トラブルシューティング パーマリンク