Ошибка "Your project requires a newer version of the Kotlin Gradle plugin" в Android Studio при сборке Flutter проекта
Причина ошибки и диагностика
Ошибка "Your project requires a newer version of the Kotlin Gradle plugin" возникает из-за несовместимости между версией Kotlin Gradle плагина, версией Android Gradle Plugin (AGP) и версией плагина Flutter, который управляет сборкой. Чаще всего проблема в том, что вы используете устаревший Kotlin плагин (1.7.10) с новой версией AGP (8.0.0+) или с новой версией compileSdk (34). AGP 8.0.0 требует Kotlin 1.8.0 или выше, а для SDK 34 рекомендуется Kotlin 1.9.0+.
Пошаговое решение
- Определите требуемую версию Kotlin. Откройте терминал в корневой папке вашего Flutter проекта и выполните команду:
Найдите строкуflutter doctor -vAndroid toolchain— там будет указана версия Kotlin, которую рекомендует ваш Flutter SDK. Также можно зайти вandroid/build.gradleи временно закомментировать строку с kotlin_version, чтобы посмотреть, какую версию предлагает Flutter при синхронизации. - Обновите версию Kotlin. В файле
android/build.gradleизмените:
(на момент написания ответа это стабильная версия, совместимая с AGP 8.x и SDK 34). Если используете Gradle Kotlin DSL, строка будет выглядеть так:ext.kotlin_version = '1.9.22'val kotlinVersion = "1.9.22" - Обновите версию Android Gradle Plugin (AGP). В том же файле проверьте версию AGP. Для Flutter 3.10+ лучше использовать AGP 8.1.0 или 8.2.0:
classpath 'com.android.tools.build:gradle:8.1.4' - Обновите Gradle wrapper. Откройте файл
android/gradle/wrapper/gradle-wrapper.propertiesи установите совместимую версию Gradle. Для AGP 8.1.x нужен Gradle 8.3+:distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip - Синхронизируйте проект. Закройте Android Studio, удалите папки
.gradleиbuildв папкеandroid/. Затем в терминале выполните:cd android ./gradlew clean cd .. flutter clean flutter pub get flutter run
Проверка совместимости (таблица)
Основные пары версий, которые гарантированно работают вместе:
- Flutter 3.13+: Kotlin 1.9.22, AGP 8.2.0, Gradle 8.4
- Flutter 3.10: Kotlin 1.8.22, AGP 8.1.0, Gradle 8.2
- Flutter 3.7: Kotlin 1.7.20, AGP 7.4.0, Gradle 7.6
Если после всех изменений ошибка остаётся, проверьте файл android/settings.gradle — там может быть указана устаревшая версия Kotlin плагина через plugins { id("org.jetbrains.kotlin.android") version "..." }. Удалите эту строку или приведите её в соответствие с версией из build.gradle.
Альтернативный подход: использование Flutter-специфичных настроек
Если ручное обновление версий кажется сложным, можно воспользоваться встроенными возможностями Flutter для автоматического управления версиями Kotlin и Gradle.
- Откройте файл
android/build.gradleи полностью удалите строкуext.kotlin_version = '1.7.10'и строку с classpath для kotlin-gradle-plugin, если она есть. - Вместо этого добавьте в начало файла
android/build.gradleследующий блок (если его ещё нет):plugins { id("com.android.application") version "8.1.0" apply false id("com.android.library") version "8.1.0" apply false id("org.jetbrains.kotlin.android") version "1.9.22" apply false } - В файле
android/app/build.gradleдобавьте в начало:plugins { id("com.android.application") id("org.jetbrains.kotlin.android") } - Удалите все старые блоки
buildscriptиdependenciesс Kotlin и AGP из корневого build.gradle — они теперь заменены плагинами. - Выполните
flutter cleanиflutter pub get.
Этот метод использует современный подход с декларативными плагинами (plugin DSL), который Flutter рекомендует для новых проектов. Он автоматически подтягивает совместимые версии и избавляет от ручного отслеживания зависимостей.