Ошибка "Module was compiled with an incompatible version of Kotlin" в Android Studio
Причина ошибки
Ошибка "Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16" возникает из-за несоответствия версии Kotlin, используемой в вашем проекте, и версии, с которой были скомпилированы подключенные библиотеки (например, AndroidX). В вашем случае:
- Вы используете Kotlin 1.3.72 (старая версия).
- Библиотеки AndroidX (
core-ktx:1.3.2) скомпилированы с Kotlin 1.5.1. - Gradle плагин Android (4.1.0) ожидает метаданные Kotlin версии 1.1.16 — это внутренняя версия метаданных, которая не совпадает с 1.5.1.
Решение: обновить версию Kotlin в проекте до актуальной, совместимой с используемыми библиотеками.
Пошаговое исправление
- Обновите Kotlin-плагин в файле
build.gradle(уровень проекта). Заменитеkotlin_versionна актуальную версию. На момент написания ответа (2024 год) рекомендуется версия 1.9.0 или новее. Пример:buildscript { ext.kotlin_version = "1.9.0" repositories { google() mavenCentral() // jcenter устарел, используйте mavenCentral } dependencies { classpath "com.android.tools.build:gradle:8.1.0" // обновите Gradle плагин classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } - Обновите Gradle-плагин Android до версии, совместимой с новой версией Kotlin. Например, для Kotlin 1.9.0 используйте Android Gradle Plugin 8.1.0 или выше. Проверьте совместимость на официальном сайте.
- Обновите зависимости в
app/build.gradle. Убедитесь, что все библиотеки используют последние версии:dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.12.0' // последняя версия implementation 'androidx.appcompat:appcompat:1.6.1' } - Синхронизируйте проект (File → Sync Project with Gradle Files) и выполните Clean Build (Build → Clean Project, затем Build → Rebuild Project).
Альтернативный вариант: если нужно оставить старые версии
Если вы не можете обновить Kotlin (например, из-за legacy-кода), попробуйте зафиксировать совместимые версии библиотек. Например, для Kotlin 1.3.72 используйте старые версии AndroidX:
dependencies {
implementation 'androidx.core:core-ktx:1.3.0' // совместимо с Kotlin 1.3.x
implementation 'androidx.appcompat:appcompat:1.2.0'
}
Но это временное решение — рано или поздно вам придется обновить Kotlin.
Проверка совместимости
Чтобы избежать подобных ошибок в будущем, следуйте правилу: версия Kotlin должна быть не ниже версии, с которой собраны все зависимости. Используйте gradle-wrapper.properties для обновления Gradle:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
После всех изменений запустите сборку. Ошибка должна исчезнуть.
<<Дополнительный способ: очистка кэша и инвалидация
Иногда проблема возникает не из-за несовместимости версий, а из-за поврежденного кэша Gradle или Android Studio. Если обновление версий не помогло, попробуйте следующие шаги:
- Инвалидируйте кэш Android Studio: File → Invalidate Caches / Restart → выберите "Invalidate and Restart". После перезапуска студия перестроит кэш.
- Очистите кэш Gradle вручную: удалите папку
.gradleв корне проекта и папку~/.gradle/caches(для Windows:C:\Users\ВашеИмя\.gradle\caches). Затем выполните Clean и Rebuild. - Проверьте версию Kotlin в плагинах: если вы используете сторонние плагины (например, kotlinx.serialization), их версии также должны быть совместимы. Обновите их до последних версий.
Этот метод особенно полезен, если ошибка появляется после обновления Android Studio или импорта чужого проекта. В 90% случаев инвалидация кэша решает проблему, если версии уже правильные.
Ответов пока нет.
Войдите чтобы оставить ответ