JDK в Android Studio: выбор версии, настройка и решение ошибок

Ошибка Unsupported class file major version или сообщение Gradle о несовместимой версии Java при сборке проекта в Android Studio почти всегда означает одно: среда использует не ту JDK, которая требуется вашей конфигурации. Проверить это можно за минуту: откройте File → Settings → Build, Execution, Deployment → Build Tools → Gradle и посмотрите, какой JDK указан в поле Gradle JDK.

Современные версии Android Studio поставляются со встроенным JDK — JetBrains Runtime (JBR), поэтому отдельная установка Java на компьютер обычно не нужна. Проблемы начинаются, когда проект открывается с устаревшим плагином Gradle, в системе выставлена переменная JAVA_HOME на старую версию, либо в настройках вручную выбран внешний JDK. Разберём, какая версия нужна, где она лежит и как исправить типичные конфликты.

Что такое JDK и зачем он Android Studio

JDK (Java Development Kit) — это комплект инструментов для разработки на Java: компилятор, стандартные библиотеки и среда выполнения. Android Studio написана на Java и Kotlin, поэтому сама IDE, система сборки Gradle и компиляция исходного кода приложения зависят от наличия рабочего JDK.

Важно различать три сущности, которые часто путают:

  • JDK для запуска IDE — среда, под которой работает сама Android Studio;
  • ⚙️ Gradle JDK — версия Java, под которой запускается сборка проекта;
  • 📦 source/target compatibility — версия байт-кода, в который компилируется ваш код (задаётся в build.gradle).

Несовпадение любой пары из этого списка приводит к ошибкам сборки. Например, Gradle может запускаться на JDK 17, тогда как плагин Android Gradle старой версии с ней несовместим — и сборка падает ещё до компиляции кода.

Какая версия JDK нужна для Android Studio

Точные требования зависят от версии IDE и плагина Android Gradle Plugin (AGP), поэтому сверяйтесь с официальной документацией для своей связки. Общая картина для актуальных версий выглядит так:

КомпонентТипичная версия JDKКомментарий
Запуск Android Studio (современные версии)JDK 17 (встроенный JBR)Поставляется вместе с IDE, менять не нужно
Gradle JDK для новых проектовJDK 17Выбирается по умолчанию в настройках Gradle
Старые проекты (старый AGP)JDK 8 или 11Могут требовать понижения версии либо обновления AGP
compileOptions в build.gradleJava 8 / 11 / 17Задаётся независимо от версии запуска Gradle

Ключевое правило: версия Gradle JDK должна поддерживаться вашей версией Android Gradle Plugin — это самая частая причина конфликтов при открытии чужих или старых проектов. Если проект не собирается, сначала посмотрите версию AGP в файле build.gradle уровня проекта и сверьте её с таблицей совместимости в документации Google.

⚠️ Внимание: не устанавливайте «самую новую» Java с сайта Oracle в надежде, что это решит проблему. Слишком свежая версия JDK может быть несовместима с вашей версией Gradle так же, как и слишком старая.

Встроенный JDK (JetBrains Runtime): где находится

Android Studio включает собственную среду выполнения — JetBrains Runtime, основанную на OpenJDK. Отдельно качать и устанавливать Java для работы IDE не требуется. Встроенный JDK лежит внутри каталога установки среды:

  • 🪟 Windows: обычно C:\Program Files\Android\Android Studio\jbr;
  • 🍎 macOS: внутри пакета приложения, каталог Contents/jbr;
  • 🐧 Linux: подкаталог jbr в папке, куда распакована IDE.

В старых версиях Android Studio каталог назывался jre — если вы встретили его в инструкциях, речь о том же компоненте. Убедиться, какой JDK используется для запуска IDE, можно через Help → About: там указана версия среды выполнения.

📊 Какой JDK используется в вашем проекте прямо сейчас?
Встроенный JBR 17
JDK 11
JDK 8
Не знаю, как проверить

Как сменить Gradle JDK в проекте

Если сборка требует другую версию Java, сменить её можно без переустановки среды. Вам нужно открыть настройки Gradle и выбрать подходящий JDK из списка — Android Studio сама покажет обнаруженные в системе версии и предложит скачать недостающие.

☑️ Смена Gradle JDK в Android Studio

Выполнено: 0 / 5

Альтернативный способ — указать путь к JDK в файле gradle.properties проекта:

org.gradle.java.home=C:\\Program Files\\Java\\jdk-17
⚠️ Внимание: параметр org.gradle.java.home в gradle.properties переопределяет настройку IDE. Если проект «игнорирует» выбранный в Settings JDK — проверьте этот файл, а также глобальный gradle.properties в домашнем каталоге пользователя.

Типичные ошибки и их решение

Сначала короткая диагностика: если синхронизация Gradle падает сразу после открытия проекта, почти всегда виновата несовместимость версий, а не код приложения. Читайте первое сообщение об ошибке в окне Build — оно обычно прямо указывает на проблему.

«Unsupported class file major version» — Gradle запущен на JDK, которая слишком старая для используемой версии Gradle, либо наоборот. Решение: выровнять версии, руководствуясь таблицей совместимости Gradle и Java.

«Invalid Gradle JDK configuration found» — в настройках указан путь к JDK, который больше не существует (например, Java была удалена или обновлена в другой каталог). Откройте настройки Gradle и выберите существующий JDK заново.

Ошибки компиляции с упоминанием sourceCompatibility — версия языка в build.gradle модуля выше, чем поддерживает выбранный JDK. Проверьте блок:

android {

compileOptions {

sourceCompatibility JavaVersion.VERSION_17

targetCompatibility JavaVersion.VERSION_17

}

}

Как узнать версию Java из терминала

Откройте вкладку Terminal в Android Studio и выполните команду java -version. Учтите: терминал показывает версию из переменной PATH, которая может отличаться от Gradle JDK в настройках IDE — для диагностики сборки важнее именно настройка Gradle JDK.

Переменная JAVA_HOME и внешние JDK

Переменная окружения JAVA_HOME влияет на инструменты командной строки, но современные версии Android Studio при сборке через интерфейс ориентируются на собственные настройки. Тем не менее, если вы запускаете сборку из терминала командой gradlew assembleDebug, будет использована Java из JAVA_HOME или PATH — и она может отличаться от той, что выбрана в IDE.

Отсюда практический вывод: если проект собирается из интерфейса, но падает из командной строки (или наоборот), сравните версии Java в обоих окружениях. Для единообразия можно указать org.gradle.java.home в проекте либо привести JAVA_HOME к той же версии.

Обновление JDK при апгрейде проекта

При обновлении Android Gradle Plugin до свежей версии может потребоваться и более новый JDK. Порядок безопасного обновления такой: сначала обновите AGP и Gradle через AGP Upgrade Assistant (Tools → AGP Upgrade Assistant), затем проверьте настройку Gradle JDK и при необходимости переключите её на требуемую версию, после чего выполните Build → Clean Project и полную пересборку.

Если после обновления сборка ломается, откат обратно возможен через систему контроля версий — поэтому перед апгрейдом зафиксируйте рабочее состояние проекта коммитом. Это простое действие избавит от долгого ручного восстановления конфигурации.

Часто задаваемые вопросы

Нужно ли отдельно устанавливать JDK для Android Studio?

Нет. Современные версии Android Studio поставляются со встроенным JetBrains Runtime, которого достаточно и для работы IDE, и для сборки проектов. Внешний JDK нужен только в особых случаях — например, для старых проектов со специфическими требованиями.

Где посмотреть, какой JDK использует мой проект?

Откройте File → Settings → Build, Execution, Deployment → Build Tools → Gradle — поле Gradle JDK показывает версию, под которой запускается сборка. Версию среды, под которой работает сама IDE, можно увидеть в Help → About.

Что делать, если в списке Gradle JDK нет нужной версии?

В том же выпадающем списке есть пункт Download JDK — Android Studio скачает выбранную версию автоматически. Либо установите JDK вручную и укажите путь к нему через пункт Add JDK.

Почему проект собирается в IDE, но падает при сборке из терминала?

Вероятная причина — разные версии Java: терминал использует JDK из JAVA_HOME или PATH, а IDE — из собственных настроек. Сравните версии командой java -version и приведите их к одной, либо задайте org.gradle.java.home в gradle.properties.

Можно ли писать Android-приложения на Java 17 и выше?

Да, если версия Android Gradle Plugin в вашем проекте поддерживает соответствующий уровень языка. Версия задаётся в блоке compileOptions файла build.gradle модуля. Точную совместимость проверяйте в документации к вашей версии AGP.