次の方法で共有


Xamarin.Android と Java Development Kit 9 以降

この記事では、Xamarin.Android で Java Development Kit (JDK) 9 以降のエラーを解決する方法について説明します。

概要

Xamarin.Android では、Java Development Kit (JDK) を使用して、Android アプリのビルドと Android デザイナーの実行を行う Android SDK と統合されます。 最新バージョンの Android SDK (API 24 以降) では、JDK 8 (1.8) または Microsoft Mobile OpenJDK Preview が必要です。 Google から入手できる Android SDK ツールはまだ JDK 9 と互換性がないため、Xamarin.Android は JDK 9 以降では動作しません。

Note

Android API 31 をターゲットにするには、JDK 11 をインストールする必要があります。 JDK 11 が Visual Studio に与える影響の詳細については、こちらを参照してください。

JDK エラー

JDK 8 より後のバージョンの JDK を使用して Xamarin.Android プロジェクトをビルドしようとすると、このバージョンの JDK はサポートされていないことを示す明示的なエラーが発生します。 次に例を示します。

Building with JDK Version `9.0.4` is not supported. Please install JDK version `1.8.0`. See https://aka.ms/xamarin/jdk9-errors

これらのエラーを解決するには、「Java Development Kit (JDK) のバージョンの更新方法を教えてください」で説明されているように、JDK 8 (1.8) をインストールする必要があります。 または、Microsoft Mobile OpenJDK Preview をインストールすることもできます。Microsoft Mobile OpenJDK は、最終的に、Xamarin.Android 開発用の JDK 8 を置き換えられます。

JDK のバージョンを確認する

次のコマンドを入力して、インストールされている Java のバージョンを確認できます (JDK の bin ディレクトリが PATH 内に存在する必要があります)。

java -version

JDK 9 がインストールされている場合は、次のようなメッセージが表示されます。

java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

JDK 9 以降がインストールされている場合は、Java JDK 8 (1.8) または Microsoft Mobile OpenJDK Preview をインストールする必要があります。 JDK 8 のインストール方法の詳細については、「Java Development Kit (JDK) のバージョンの更新方法を教えてください」を参照してください。 Microsoft Mobile OpenJDK のインストール方法については、「Microsoft Mobile OpenJDK のプレビュー」を参照してください。

JDK の新しいバージョンをアンインストールする必要はないことに注意してください。ただし、Xamarin で、後の JDK のバージョンではなく JDK 8 が使用されていることを確認する必要があります。 Visual Studio で、[ツール] > [オプション] > [Xamarin] > [Android 設定] をクリックします。 [Java Development Kit の位置情報] が JDK 8 の場所 (C:\Program Files\Java\jdk1.8.0_111 など) に設定されていない場合は、[変更] をクリックし、JDK 8 がインストールされている場所に設定します。 Visual Studio for Mac では、[設定] > [プロジェクト] > [SDK の場所] > [Android] > [Java SDK (JDK)] に移動し、[参照] をクリックして、このパスを更新します。

JDK 9 での既知の問題

apksigner

apksigner と JDK 9 には既知の問題があり、apksigner.bat ファイルで apksigner.jar が呼び出されるときに、JDK 9 で想定される -classpath ではなく、-Djava.ext.dirs が使用されます。 JDK 8 (1.8) を使用することをお勧めします。 JDK 8 のインストール方法の詳細については、「Java Development Kit (JDK) のバージョンの更新方法を教えてください」を参照してください

JDK 9 をインストールした場合は、PATH 環境変数でパス C:\ProgramData\Oracle\Java\javapath が設定されていないことを確認します。このパスではまだ JDK 9 が指定されています。 それを削除した後は、コマンド ラインの java-version で JDK 8 が表示されるはずです。