Your project requires a newer version of the Kotlin Gradle plugin. (Android Studio)
Solution 1
You need to change the kotlin version in your android root project, projectName/android/build.gradle
, instead of projectName/android/app/build.gradle
.
Change the version at ext.kotlin_version
line:
buildscript {
ext.kotlin_version = '1.6.10' // Change here
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
UPDATE
The above solution will also works if your android part of the project is using java where the dependencies are using kotlin and you've encountered the following error:
Incompatible classes were found in dependencies. Remove them from the classpath or use '-Xskip-metadata-version-check' to suppress errors
e: /home/user/.gradle/caches/transforms-3/36814238b86d8b6b6f9e4e1263bce879/transformed/jetified-kotlinx-coroutines-core-jvm-1.5.2.jar!/META-INF/kotlinx-coroutines-core.kotlin_module:
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 1.5.1, expected version is 1.1.15.
AndroidStudio or IntelliJ Idea will give hint in the project build.grade
file if the kotlin is not the same with the installed kotlin in the IDE.
Solution 2
change build gradle to this :
classpath 'com.android.tools.build:gradle:4.1.0'
and gradle-wrapper to this :
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
Solution 3
I Update Flutter to 2.10.1 and I found All My Project Has Same Error in app /build.gradl you change to ext.kotlin_version = '1.6.10'
Solution 4
In my case, I don't use kotlin in my flutter project, but some of my dependencies use it (It was assets_audio_player
for me), so I had to go to build.gradle
for that dependency and update the kotlin version as other answers here:
ext.kotlin_version = '<latest-version>'
Note 1: you can open build.gradle
for the library you want by opening the android module in Android Studio then go to Gradle Scripts
from Project tab.
Note 2: you can know which library is causing the error by looking at:
Execution failed for task ':assets_audio_player:compileDebugKotlin'.
It could be more than one library, so after you change kotlin version the error will be changed.
Comments
-
jeffmayn almost 2 years
I've just updated my flutter project packages to be null-safety compliant and now Android Studio wants me to update my project to use the latest version of Kotling Gradle Plugin. Can't see where to change this though. I have tried to change
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
into"org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10"
but this has no effect.My
build.grade
-file looks like this:def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0' } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } android { compileSdkVersion 31 sourceSets { main.java.srcDirs += 'src/main/kotlin' } lintOptions { disable 'InvalidPackage' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "*********" minSdkVersion 30 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' implementation 'com.google.firebase:firebase-analytics:17.2.2' } apply plugin: 'com.google.gms.google-services'
Build output:
BUILD FAILED in 8s [!] Your project requires a newer version of the Kotlin Gradle plugin. Find the latest version on https://kotlinlang.org/docs/gradle.html#plugin-and-versions, then update project/android/build.gradle: ext.kotlin_version = '<latest-version>' Exception: Gradle task assembleDebug failed with exit code 1