Поделиться через


Xamarin.Android и комплект SDK версии 9 для Java или более поздней версии

В этой статье объясняется, как устранить ошибки в комплекте SDK для Java (JDK) версии 9 или более поздней версии в Xamarin.Android.

Обзор

Xamarin.Android использует Java Development Kit (JDK) для интеграции с пакетом SDK для Android в целях создания приложений Android и запуска конструктора Android. Для последних версий комплект SDK для Android (API 24 и выше) требуется JDK 8 (1.8) или предварительная версия Microsoft Mobile OpenJDK. Поскольку средства пакета SDK для Android, доступные в Google, пока не совместимы с JDK версии 9, Xamarin.Android не работает с JDK версии 9 или более поздней версии..

Примечание.

Чтобы выбрать для Android API 31 в качестве целевой платформы, необходимо установить JDK 11. Дополнительные сведения о влиянии JDK 11 на Visual Studio см. здесь.

Ошибки JDK

При попытке построить проект Xamarin.Android с версией JDK более поздней, чем JDK 8, вы получите явную ошибку, указывающую, что эта версия 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

Чтобы устранить эти ошибки, необходимо установить JDK 8 (1.8), как описано в разделе Как обновить версию Java Development Kit (JDK)?. Кроме того, можно установить предварительную версию Microsoft Mobile OpenJDK в конечном итоге Microsoft Mobile OpenJDK заменит JDK 8 для разработки Xamarin.Android.

Проверка версии 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. Сведения об установке JDK 8 см. в разделе Как обновить версию Java Development Kit (JDK)?. Дополнительные сведения об установке Microsoft Mobile OpenJDK см. в статье Дистрибутив OpenJDK от Майкрософт для разработки мобильных приложений.

Обратите внимание, что удаление более поздней версии JDK не требуется; однако необходимо убедиться, что Xamarin использует JDK 8, а не более позднюю версию JDK. В Visual Studio щелкните "Параметры > инструментов>" Xamarin > Android Параметры. Если расположение пакета средств разработки Java не задано в расположении JDK 8 (например , C:\Program Files\Java\jdk1.8.0_111), нажмите кнопку "Изменить " и установите его в расположение, где установлен JDK 8. В Visual Studio для Mac перейдите к разделу "Параметры > пакета SDK для > проектов>", где пакет SDK для Java для Android > (JDK) и нажмите кнопку "Обзор", чтобы обновить этот путь.

Известные проблемы с пакетом JDK 9

apksigner

Существует известная ошибка с apksigner и JDK 9, в которой файл apksigner.bat вызывает apksigner.jar с помощью -Djava.ext.dirs, а не -classpath, как ожидает JDK 9. Мы рекомендуем использовать JDK 8 (1.8). Сведения об установке JDK 8 см. в разделе Как обновить версию Java Development Kit (JDK)?

Если вы установили JDK 9, убедитесь, что для переменной среды PATH не задан следующий путь, так как он по-прежнему будет указывать на JDK 9: C:\ProgramData\Oracle\Java\javapath. После удаления java-version в командной строке должен отобразиться JDK 8.