android - supports - kotlin-stdlib-jre7 is deprecated. please use kotlin-stdlib-jdk7 instead
El bloque compileKotlin en el archivo build.gradle produce el error "No se pudo encontrar el método compileKotlin() para los argumentos (1)
Estoy intentando configurar Kotlin para que funcione con Java 1.8 en mi proyecto de Android. He intentado agregar el bloque compileKotlin
en la parte inferior de mi archivo build.gradle
, pero si lo hago recibo un error.
El error que se produce es el siguiente:
Error: (38, 0) No se pudo encontrar el método compileKotlin () para los argumentos [build_dvcqiof5pov8xt8flfud06cm3 $ _run_closure4 @ 66047120] en el proyecto '': core'' de tipo org.gradle.api.Project.
El proyecto funciona bien sin este bloque. ¿Qué me estoy perdiendo? Aquí está el archivo completo build.gradle
, es bastante básico:
apply plugin: ''com.android.library''
apply plugin: ''kotlin-android''
android {
compileSdkVersion 25
buildToolsVersion ''25.0.2''
defaultConfig {
minSdkVersion 24
targetSdkVersion 25
versionCode 1
versionName ''1.0.0''
testInstrumentationRunner ''android.support.test.runner.AndroidJUnitRunner''
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
dependencies {
compile ''com.android.support:appcompat-v7:25.3.1''
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile ''com.google.android.support:wearable:2.0.2''
}
repositories {
mavenCentral()
}
compileKotlin {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
kotlinOptions {
jvmTarget = ''1.8''
apiVersion = ''1.1''
languageVersion = ''1.1''
}
}
El error que está recibiendo significa que no hay compileKotlin
tarea compileKotlin
en el proyecto, y eso se espera para los proyectos de Android.
Los nombres de las tareas de compilación de Kotlin en los proyectos de Android contienen los nombres de las variantes de compilación (se combinan del tipo de compilación, el sabor del producto y otras configuraciones y se parecen a debug
o releaseUnitTest
- las tareas son compileDebugKotlin
y compileReleaseUnitTestKotlin
respectivamente). No hay tarea compileKotlin
, que generalmente se crea para el conjunto de fuente main
en proyectos ordinarios de Java + Kotlin.
Lo más probable es que desee configurar todas las tareas de compilación de Kotlin en el proyecto, y para hacer eso, puede aplicar el bloque de la siguiente manera:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
kotlinOptions {
jvmTarget = ''1.8''
apiVersion = ''1.1''
languageVersion = ''1.1''
}
}