くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

VSTS で Xamarin.Android のプロジェクトを ビルドしようとすると、 cannot access java.lang.Object ってエラーが出るから解決してみた

VSTS で Xamarin.Android をビルドしようとしたら、以下のようなエラーが出ました。

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1862,3): Error : java\lang\Object.class(java\lang : Object.class)
cannot access java.lang.Object
Process 'msbuild.exe' exited with code '1'.

ぐぐったら以下のような情報にたどり着きました。

That error is telling you that the Java Class version that is being loaded was compiled with Java 8 (52) but Java 7 (51) is trying to load that compiled class. forums.xamarin.com

ふむ、

## JDK 8 でビルドされたクラスに JDK 7 を使用した状態で、アクセスしようとしているのか。

# そもそも、VSTS で現在ビルドしているAgent に JDK 7が入ってないのかなと思って少し調べてみました。

ちなみに、Hosted Agent でビルドしています。

Java Standard Edition Development Kit 1.8

www.visualstudio.com

ふむ、JDK 8 はちゃんと入っている。。。

# 解決方法は、 VSTS の Buld Defined で 明示的に JDK 8 を使用するように指定すれば大丈夫です。

Build Xamarin.Android Project の設定欄にある、 JDK Archtecture の設定項目を JDK 8 に変更すればいい感じです。

# わーい

# 参考ページ www.jamessturtevant.com