Avatar ·

Проект использует несовместимую версию Android Gradle Plugin (AGP 7.3.0-alpha07)

Всем привет! Я новичок в Android-разработке на Kotlin, столкнулся с проблемой при сборке проекта. Использую Android Studio Hedgehog. При попытке синхронизировать Gradle или собрать проект получаю ошибку: "The project is using an incompatible version (AGP 7.3.0-alpha07) of the Android Gradle plugin." Вот мой файл `build.gradle.kts` (уровень проекта): ```kotlin plugins { id("com.android.application") version "7.3.0-alpha07" apply false id("com.android.library") version "7.3.0-alpha07" apply false id("org.jetbrains.kotlin.android") version "1.7.0" apply false } ``` И `build.gradle.kts` (уровень модуля app): ```kotlin plugins { id("com.android.application") id("org.jetbrains.kotlin.android") } android { compileSdk = 33 defaultConfig { applicationId = "com.example.myapp" minSdk = 21 targetSdk = 33 versionCode = 1 versionName = "1.0" } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } } ``` Gradle wrapper у меня версии 8.0. Пробовал чистить кеш, пересоздавать проект — не помогает. В интернете пишут, что AGP 7.3.0-alpha07 — это альфа-версия, которая может быть несовместима с текущей Gradle. Какую версию AGP мне нужно поставить? И может быть проблема в версии Kotlin? Заранее спасибо за помощь! <<>>

Причина ошибки и правильное решение

Вы абсолютно правы — проблема в использовании альфа-версии AGP (Android Gradle Plugin) 7.3.0-alpha07. Альфа-версии предназначены для тестирования новых функций и часто имеют ограниченную совместимость с версиями Gradle. В вашем случае AGP 7.3.0-alpha07 требует Gradle версии 7.5 или выше, а у вас стоит Gradle 8.0 — это вроде бы подходит, но альфа-версии могут быть нестабильны и не поддерживаться в новых версиях Android Studio.

Основная рекомендация от Google — использовать стабильные (релизные) версии AGP. Вот проверенная комбинация для вашего проекта:

// build.gradle.kts (уровень проекта)
plugins {
    id("com.android.application") version "7.4.2" apply false
    id("com.android.library") version "7.4.2" apply false
    id("org.jetbrains.kotlin.android") version "1.8.0" apply false
}

Или, если вы хотите использовать более новую стабильную версию:

// build.gradle.kts (уровень проекта) — для Gradle 8.x
plugins {
    id("com.android.application") version "8.1.4" apply false
    id("com.android.library") version "8.1.4" apply false
    id("org.jetbrains.kotlin.android") version "1.9.0" apply false
}

Почему это происходит?

Android Gradle Plugin и Gradle имеют строгую матрицу совместимости. Каждая версия AGP требует определённый диапазон версий Gradle. Например:

  • AGP 7.3.x — требует Gradle 7.4+ (но стабильная 7.3.1 уже работает с Gradle 7.5)
  • AGP 7.4.x — требует Gradle 7.5+
  • AGP 8.0.x — требует Gradle 8.0+
  • AGP 8.1.x — требует Gradle 8.0+

Альфа-версии (например, -alpha07) могут иметь нестандартные требования или баги, которые исправлены в стабильных релизах.

Пошаговое исправление

1. Обновите AGP до стабильной версии — замените 7.3.0-alpha07 на 7.4.2 или 8.1.4 (зависит от вашей версии Gradle).

2. Обновите Kotlin плагин — версия Kotlin 1.7.0 совместима с AGP 7.3+, но лучше использовать более новую стабильную пару: Kotlin 1.8.0 + AGP 7.4.2 или Kotlin 1.9.0 + AGP 8.1.4.

3. Проверьте Gradle wrapper — откройте файл gradle/wrapper/gradle-wrapper.properties и убедитесь, что версия Gradle соответствует AGP. Для AGP 7.4.2 подойдёт Gradle 7.5 или 7.6, для AGP 8.1.4 — Gradle 8.0 или 8.2.

// gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip

4. Синхронизируйте проект — после изменений нажмите "Sync Now" в Android Studio или выполните команду ./gradlew clean build.

Дополнительная проверка

Если ошибка остаётся, проверьте файл settings.gradle.kts — в нём не должно быть указания на альфа-версию AGP. Также убедитесь, что в build.gradle.kts модуля app нет дублирования плагинов.

Вот итоговый пример build.gradle.kts уровня проекта для стабильной сборки:

plugins {
    id("com.android.application") version "7.4.2" apply false
    id("com.android.library") version "7.4.2" apply false
    id("org.jetbrains.kotlin.android") version "1.8.0" apply false
}

tasks.register("clean", Delete::class) {
    delete(rootProject.layout.buildDirectory)
}

После этих изменений проект должен успешно синхронизироваться и собираться.

<<>>

Альтернативный подход: использование Gradle Version Catalog

Если вы хотите избежать подобных проблем в будущем и упростить управление версиями, рекомендую перейти на Gradle Version Catalog (файл libs.versions.toml). Это централизованный способ задавать версии всех зависимостей, включая AGP и Kotlin.

Создайте файл gradle/libs.versions.toml:

[versions]
agp = "7.4.2"
kotlin = "1.8.0"

[libraries]
# ваши библиотеки

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

Затем в build.gradle.kts (уровень проекта) используйте:

plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.android.library) apply false
    alias(libs.plugins.kotlin.android) apply false
}

В модуле app:

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
}

Этот подход гарантирует, что версии AGP и Kotlin будут согласованы, и вы сможете легко обновлять их, меняя только одну строку в libs.versions.toml. Также это решает проблему несовместимости, так как вы всегда будете использовать стабильные версии из одного источника.

Для миграции на Version Catalog воспользуйтесь встроенной функцией Android Studio: Refactor > Migrate to Version Catalog.