Ошибка Kotlin: Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7 при сборке Android проекта
Причина ошибки и её решение
Ваша проблема связана с тем, что вы используете устаревшую версию Kotlin (1.0.7) и неправильное имя артефакта. Начиная с Kotlin 1.1.0, артефакт kotlin-stdlib-jre7 был переименован в kotlin-stdlib-jdk7, а с версии 1.2.0 — в kotlin-stdlib-jdk8. Версия 1.0.7 была выпущена ещё в 2017 году и не поддерживает современные артефакты.
Вот пошаговое решение, которое исправит вашу сборку:
- Обновите версию Kotlin — используйте актуальную стабильную версию (например, 1.9.22).
- Замените артефакт — вместо
kotlin-stdlib-jre7используйтеkotlin-stdlib(базовая библиотека без привязки к JDK) илиkotlin-stdlib-jdk8. - Добавьте репозиторий Maven Central — некоторые версии Kotlin могут отсутствовать в JCenter.
Исправленный build.gradle (уровень проекта):
buildscript {
ext.kotlin_version = '1.9.22' // или любая актуальная версия
repositories {
google()
mavenCentral() // обязательно добавьте Maven Central
jcenter() // можно удалить, он устарел
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0' // обновите Gradle
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Исправленный build.gradle (модуль app):
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 34 // используйте актуальный SDK
defaultConfig {
minSdkVersion 16
targetSdkVersion 34
}
}
dependencies {
// ВАЖНО: используйте kotlin-stdlib, а не kotlin-stdlib-jre7
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
// Альтернатива для JDK 8+:
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
Дополнительные рекомендации
- Очистите кэш Gradle — выполните в терминале:
./gradlew cleanBuildCache(или через Android Studio: File → Invalidate Caches / Restart). - Проверьте версию Gradle — убедитесь, что
gradle-wrapper.propertiesсодержит совместимую версию (например, 8.0+ для Kotlin 1.9). - Синхронизируйте проект — после изменений нажмите "Sync Now" в Android Studio.
Если ошибка сохраняется, проверьте, что в файле settings.gradle нет лишних репозиториев, и что вы не используете устаревший плагин kotlin-android-extensions (он удалён в Kotlin 1.8+).
Альтернативный подход: Использование BOM (Bill of Materials)
Если вы хотите избежать ручного указания версий для всех Kotlin-зависимостей, можно использовать Kotlin BOM. Этот способ особенно удобен для больших проектов с множеством Kotlin-библиотек.
Добавьте в build.gradle (модуль app):
dependencies {
implementation platform('org.jetbrains.kotlin:kotlin-bom:1.9.22')
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
// Другие Kotlin-зависимости указываются без версии
}
BOM автоматически подставит совместимые версии для всех артефактов Kotlin. Это решает проблему не только с kotlin-stdlib-jre7, но и с любыми другими устаревшими артефактами.
Важно: Убедитесь, что ваш Gradle поддерживает BOM (версия 5.0+). Если вы используете старый Gradle, обновите его через gradle-wrapper.properties до версии 7.0 или выше.
Этот подход также упрощает миграцию между версиями Kotlin — достаточно изменить версию в одном месте.
Ответов пока нет.
Войдите чтобы оставить ответ