Ошибка java Lang UnsupportedClassVersion в Xamarin Studio
При создании проекта я получаю следующую ошибку. Как это исправить?
C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (3,3): Ошибка: java.lang.UnsupportedClassVersionError: com / android / dx / command / Main: Unsupported major.minor версия 52.0 (FGH)
Информация о моей версии из справки> О> Подробности :
- Приложение не запускается в визуальном студийном эмуляторе для Android в visual studio 2015
- У кого-нибудь есть тесты (код и результаты), сравнивающие производительность приложений Android, написанных на Xamarin C # и Java?
- Включить миграцию Entity Framework в Mono
- Преобразуйте библиотеку classов .NET Standard в родной aar / jar
- Как использовать SharedPreferences в Xamarin.Android?
Версия Xamarin.Android: 6.0.2.1 (версия для начинающих)
Android SDK: C: \ Users \ Admin \ AppData \ Local \ Android \ android-sdk
Поддерживаемые версии Android:
- 4.0.3 (уровень API 15)
- 4.4 (уровень API 19)
- 6.0 (уровень API 23)
Версия SDK Tools: 24.4.1
SDK Platform Tools Версия: 23.0.1
SDK Build Tools Версия: 24 rc2
Java SDK: C: \ Program Files (x86) \ Java \ jdk1.7.0_71
java-версия “1.7.0_71”
Java (TM) SE Runtime Environment (assembly 1.7.0_71-b14) Клиентская виртуальная машина Java HotSpot (TM) (assembly 24.71-b01, смешанный режим, совместное использование)
- Когда использовать Xamarin.Forms vs Xamarin Native?
- Xamarin Studio - не может войти в систему - один из идентифицированных элементов был в недопустимом формате
- Xamarin Forms Android Error: установите пакет «Android Support Library»,
- Ошибка после обновления библиотеки Android.Support v7 AppCompat до версии 21.0.3
- Как сделать ObservableCollection streamобезопасным?
- Граница UITextField для нижней стороны
- В чем разница между LayoutOptions Xamarin.Form, особенно Fill и Expand?
- Знаю ли я, нужен ли мне Multi-Dex? (ClassNotFoundException)
Версия 52.0 здесь относится к конкретной версии JDK, которая в этом случае относится к JDK 8.
Xamarin.Android 7.0 требует JDK 1.8 для использования API Nougat (API 24) Android. Вы можете продолжать использовать более ранние версии JDK, если вы планируете использовать более ранние уровни API Android:
-
JDK 1.8 – до API 24+
-
JDK 1.7 – до API 23
-
JDK 1.6 – до API 20
Кроме того, для использования пользовательских элементов управления в Android-дизайнере требуется 64-разрядная версия JDK.
Самый простой вариант – установить 64-битную версию JDK 1.8, поскольку она обратно совместима со всеми предыдущими уровнями API и поддерживает новые функции дизайнера Android.
(Одно неудачное осложнение с JDK 1.8 – это то, что несовместимо с устаревшей версией Proguard , включенной в Android SDK. В настоящее время это приведет к ошибке «Недопустимый номер версии classа [52.0]» при попытке использования функций Proguard или Multidex в Xamarin.Android. См. 44187. Я бы рекомендовал вам установить это на стороне версии по умолчанию, которую Android отправляет в android-sdk\tools\proguard
. Просто переименуйте существующую папку в другое и добавьте новую версию proguard. )
Неподдерживаемая версия major.minor 52.0
Это сообщение об ошибке вызвано несовместимостью с Java JDK: Android SDK Build-tools версии 24 и выше требуют Java JDK 8 (1.8), тогда как более ранние версии по-прежнему совместимы с Java JDK 7 (1.7). (Это напоминает старые ответы о той же ошибке.)
Шаги для обновления :
-
Обновление до Java JDK 8 . Рекомендуется использовать 64-разрядную версию для совместимости с новыми функциями дизайнера Xamarin Android в Xamarin Studio 6.1 и Xamarin для Visual Studio 4.2.
-
Дважды проверьте, что Java JDK 8 выбран в настройках Xamarin:
-
Visual Studio : Инструменты> Параметры> Xamarin> Настройки Android> Местоположение Java Development Kit .
-
Альтернативы :
Если вы предпочитаете не обновлять Java JDK 8, вы можете вместо этого выполнить одно из следующих действий.
-
Удалите все версии Android SDK Build-Tools версии 24 и выше с помощью менеджера Android SDK.
-
Или установите свойство
AndroidSdkBuildToolsVersion
MSBuild в более раннюю версию. Например, если у вас также установлена версия 23.0.3, вы можете добавить следующую строку в верхний элемент
в файле проекта.csproj
Android:23.0.3
(См. Также https://releases.xamarin.com/technical-bulletin-android-sdk-build-tools-24/ .)
Дополнительная справочная информация
Обновление 25 июля 2016 года:
Google выпустил Android SDK Build-tools 24.0.1. Эта версия исправляет ошибку в aapt
которая присутствовала в версии 24.
Обновление 14 июля 2016 года:
Неподдерживаемая версия major.minor 52.0
Оказывается, это сообщение об ошибке вызвано несовместимостью с Java JDK, а не с Xamarin.Android: Android SDK Build-tools версии 24 требует Java JDK 1.8, тогда как более ранние версии по-прежнему совместимы с Java JDK 1.7. (Это напоминает старые ответы о той же ошибке.)
Обновление 16 июня 2016 года:
Версия без предварительного просмотра Android SDK Build-tools версии 24 теперь доступна в Android SDK Manager. Xamarin.Android еще не совместим с этой версией.
Информация с 12 апреля 2016 года:
SDK Build Tools Версия: 24 rc2
Версия «Build Tools» выглядит так, как будто это может быть проблемой. Xamarin.Android еще не совместим с версией Build-tools 24 rc2 из «Предварительный канал» в Android SDK Manager. Вы можете удалить эту версию предварительного просмотра и установить одну из версий без предварительного просмотра Build-tools (например, 23.0.3) с помощью Android SDK Manager.
РЕШЕНИЕ!
Измените Java SDK на 1.8.x. После перезапуска Visual Studio запустите «Clean Solution», «Build» и будьте счастливы!
Загрузите последнюю версию JDK и установите,
Затем перейдите к:
- VS2015 Tools> Options> Xamarin и измените java на последнее место JDK.
- Xamarin Studio: Инструменты -> Параметры -> Местоположение SDK
Надеюсь это поможет.
Как сказал Брендан Загаски , его проблема возникла из-за использования превью-версии инструментов сборки
Пожалуйста, выполните следующие действия.
- Открыть менеджер SDK
- Выберите Инструменты сборки с версией 24rc2 (убедитесь, что выбран только этот элемент)
- Нажмите, чтобы удалить
ОБНОВЛЕНИЕ : подробный ответ можно найти здесь https://stackoverflow.com/a/37827161/5073734
** UPDATE 2016 Nov ** Некоторые из моих друзей сказали мне, что это также может случиться с пакетами nuget. Если вышеупомянутое не решит ваши проблемы, попробуйте переустановить пакеты nuget.
Убедитесь, что если в VS вы
Проект> Свойства имени проекта > Приложение
вы загрузили все выбранные версии в Android SDK
Предположим, что вы только установили API для Android 6.0 (уровень 23) и 5.1.1 (уровень 22), но вы устанавливаете минимальный Android для таргетинга на уровень ниже этого уровня 16, например. Это даст java.lang.UnsupportedClassVersionError: ошибка.
Просто убедитесь, что вы используете правильный уровень API
Я понимаю, что это немного старше, но я также столкнулся с этой проблемой, и ничего, что я нашел в Интернете, не решит ее. Наконец, я попытался удалить и переустановить некоторые пакеты nuget, которые я установил (SQLite.Net). После этого он скомпилировался. Надеюсь, это полезно для тех, кто исчерпал эти более распространенные решения.
Я столкнулся с той же проблемой всего пару минут назад. Решение для правильной съемки: a) Перейдите в раздел «Инструменты»> «Параметры»> «Xamarin»> «Настройки Android»> «Местоположение Java Development Kit»> измените его на JDK 1.8. Убедитесь, что вы указали на текущую версию Java
100% работающих
Я столкнулся с той же проблемой, в моей системе была установлена версия Java версии 1.7. Я установил версию 1.8 в системе.
Обновлен путь к jdk Tools-> Options-> Xamarin-> Настройки Android -> (местоположение набора для разработки java) установить путь jdk к новой версии jdk
снова перезапустить проект, решить проблему.
Удалив версию 24, загрузив и установив JDK 1.8_112, сменив комплект разработки java на JKD 1.8_112 (теперь он найден в файлах программ, а не на программных файлах x86), и перестройка проекта сделала для меня трюк.