Компиляция Kotlin «ОШИБКА: плагин Android Gradle поддерживает только плагин Kotlin Gradle версии 1.3.0 и выше». но нет kotlin_version в build.gradle?

Я попытался клонировать и собрать этот проект https://github.com/mitrejcevski/ui-тестирование, но при открытии его в Android Studio я получаю следующую ошибку сборки:

ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.
The following dependencies do not satisfy the required version:
root project 'ui-testing' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.21
Affected Modules: app

Однако, когда я щелкаю гиперссылку «приложение», я перехожу к файлу build.gradle уровня модуля, который читается

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "nl.jovmit"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors {
        mock {
            flavorDimensions "default"
        }
        prod {
            flavorDimensions "default"
        }
    }

    android.variantFilter { variant ->
        if (variant.buildType.name == 'release' && variant.getFlavors().get(0).name == 'mock') {
            variant.setIgnore(true)
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation "com.android.support:appcompat-v7:$support_version"
    implementation "com.android.support:design:$support_version"
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21'

    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    testImplementation 'junit:junit:4.12'
}

В отличие от принятого ответа ОШИБКА: плагин Android Gradle поддерживает только плагин Kotlin Gradle версии 1.3.0 и выше., я нигде не вижу ext.kotlin_version в файле Gradle.

Однако я вижу это предупреждение о том, что kotlin-stdlib-jre7 устарело:

Компиляция Kotlin «ОШИБКА: плагин Android Gradle поддерживает только плагин Kotlin Gradle версии 1.3.0 и выше». но нет kotlin_version в build.gradle?

Тем не менее, я попытался изменить это, но все равно получаю ту же ошибку. Я также пытался добавить строку

implementation 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21'

на dependencies (как видно на скриншоте выше), но это также не предотвратило ошибку.

Есть идеи, как это исправить? Я подозреваю, что устаревшая версия Kotlin является «подзависимостью» одной из зависимостей здесь, но не смог выяснить, какой именно.

Версия Kotlin находится в build.gradle проекта, а не в build.gradle приложения.

AIMIN PAN 25.02.2019 02:59

Проверьте build.gradle вашего проекта. Если вы когда-нибудь обновите версию kotlin, просто щелкнув подсказку от Android Studio, вы можете получить несколько ext.kotlin_version='...'. Удалите все, кроме последнего.

Ricky Mo 25.02.2019 03:21

Я делаю некоторые дополнения. 1. Зависимость должна быть в теле конфига билдскрипта. Поскольку это зависимость плагина gradle для поддержки компиляции kotlin (точно так же, как имя kotlin-gradle-plugin, точнее для плагина применения: «kotlin-android»), это не зависит от вашего приложения.

Snow Albert 11.11.2021 10:12
18
3
34 321
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Ответ принят как подходящий

Изменять

org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version

вместо

org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version

Это часть решения, проверьте решение @SavedBeau

Anas Naguib 16.04.2020 14:38

Определите свой ext.kotlin_version

Ваш уровень проекта build.gradle должен выглядеть так.

buildscript {
    ext.kotlin_version = '1.2.51'
    ext.android_plugin_version = '3.2.1'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$android_plugin_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

Я тоже столкнулся с этой проблемой, и я исправил ее, выполнив следующие действия:

  • На уровне проекта build.gradle у меня есть ext.kotlin_version = '1.3.10'

buildscript {
    ext.kotlin_version = '1.3.10'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    roomVersion = '1.0.0'
    archLifecycleVersion = '1.1.0'
}
  • Затем на уровне приложения build.gradle я обновил свои зависимости, чтобы иметь это: implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

Я построил, и все снова заработало нормально.

  1. Перейти к Инструменты > Диспетчер SDK > Котлин
  2. Установить новую версию плагина
  3. Убедитесь, что уровень вашего проекта build.gradle выглядит так, как показано ниже.
buildscript {
    ext.kotlin_version = '1.3.10' //put the version you just updated to
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

Просто перейдите к файлу сборки уровня вашего проекта и измените следующее

 buildscript {
  ext {
kotlin_version = '1.3.10'
support_version = '28.0.0-rc02'
room_version = '1.1.1'
arch_comp_version = '1.1.1'
  }
 }

Просто обновите версию kotlin до 1.3.10 или выше. Это исправит ситуацию.

Перейдите во Внешние библиотеки/Плагины Flutter/ui_testing/android/build.gradle и измените ext.kotlin_version на LATEST_VERSION.

Измените свою зависимость kotlin на:

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.21"

2022 Решение для «Ваш проект требует более новой версии плагина Kotlin Gradle»

In order to build a Kotlin project with Gradle, you should apply the Kotlin Gradle plugin to your project and configure the dependencies. In your root Project then Android/build.gradle

buildscript {
    ext.kotlin_version = '1.5.31'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
        classpath 'com.google.gms:google-services:4.3.10'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31'
    }
}
//$kotlin_version removed it to 1.5.31
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

обновите уровень вашего проекта build.gradle ext.kotlin_version = 'your_current_version' на ext.kotlin_version = '1.6.10'

Вы можете получить доступ к последней версии => https://kotlinlang.org/docs/gradle.html#targeting-the-jvm

Другие вопросы по теме