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.