Avatar ·

Ошибка Kotlin: Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7 при сборке Android проекта

Всем привет! Я новичок в Kotlin и пытаюсь настроить свой первый Android проект с поддержкой этого языка. Использую Android Studio. Создал новый проект, добавил плагин Kotlin, но при сборке Gradle вылетает ошибка: ``` Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7 Required by: project :app ``` Мой файл build.gradle (уровень проекта) выглядит так: ```kotlin buildscript { ext.kotlin_version = '1.0.7' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } ``` И в build.gradle модуля app: ```kotlin apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 26 defaultConfig { minSdkVersion 16 targetSdkVersion 26 } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } ``` Я уже пробовал чистить кэш Gradle, перезапускать IDE, но ошибка остаётся. Подскажите, что я делаю не так? Почему Gradle не может найти эту зависимость? Заранее спасибо! <<>>

Причина ошибки и её решение

Ваша проблема связана с тем, что вы используете устаревшую версию Kotlin (1.0.7) и неправильное имя артефакта. Начиная с Kotlin 1.1.0, артефакт kotlin-stdlib-jre7 был переименован в kotlin-stdlib-jdk7, а с версии 1.2.0 — в kotlin-stdlib-jdk8. Версия 1.0.7 была выпущена ещё в 2017 году и не поддерживает современные артефакты.

Вот пошаговое решение, которое исправит вашу сборку:

  1. Обновите версию Kotlin — используйте актуальную стабильную версию (например, 1.9.22).
  2. Замените артефакт — вместо kotlin-stdlib-jre7 используйте kotlin-stdlib (базовая библиотека без привязки к JDK) или kotlin-stdlib-jdk8.
  3. Добавьте репозиторий 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 — достаточно изменить версию в одном месте.