yitendra kumar
Construir.gradle.kts
buildscript {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath ("com.android.tools.build:gradle:7.0.2")
classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30")
classpath("gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:${Versions.spotbugsGradlePluginVersion}")
classpath("se.bjurr.violations:violations-gradle-plugin:${Versions.violationsVersion}")
}
}
//android {
// compileOptions {
// sourceCompatibility = JavaVersion.VERSION_11
// targetCompatibility = JavaVersion.VERSION_11
// }
//
// kotlinOptions {
// jvmTarget = JavaVersion.VERSION_11.toString()
// }
//}
plugins {
`maven-publish`
`java-gradle-plugin`
`kotlin-dsl`
id ("io.gitlab.arturbosch.detekt") version ("1.18.1")
}
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
dependencies {
compileOnly(gradleApi())
testImplementation(gradleTestKit())
testImplementation("junit:junit:${Versions.jUnitVersion}")
}
val generatedSources = tasks.register<GenerateVersionsFileTask>("generateSources")
ERROR: la tarea ‘compileJava’ (el objetivo actual es 11) y la tarea ‘compileKotlin’ (el objetivo actual es 1.8) la compatibilidad del objetivo jvm debe establecerse en la misma versión de Java.
Cuando elimino el comentario de Android {} Error: Errores de compilación del script:
Line 15: android {
^ Unresolved reference: android
Gracias por su tiempo y esfuerzo 🙂 Jitendra
mariano
Puede configurar la versión de Java para Java con
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
o alternativamente:
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(11))
}
y para kotlin con:
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = "11"
}
}
Todas las muestras están en gradle kotlin dsl.
-
Nota: cuando uso su
tasks.withType<>
como es, me saleCould not get unknown property 'withType' for task set of type org.gradle.api.internal.tasks.DefaultTaskContainer
. El error desaparece al usartasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
; entonces corchetes en lugar de . Pero desafortunadamente, eso todavía da como resultado la misma advertencia sobre la que preguntó el interrogador ;-(– Gato fantasma
17 de febrero a las 7:43
-
@GhostCat Acabo de encontrarme con esto usando un archivo de compilación antiguo que usó funcionar correctamente (con no ()), después de actualizar el
kotlin("jvm")
versión. Supuse que era un cambio en la API de Gradle, pero no pude encontrar una forma correcta de hacerlo… luego, en algún momento, volví a colocar esto (se acaba de comentar) e imagínense, funciona. :\ Lo único significativo en el medio fue “invalidar cachés y reiniciar”, porque una versión más nueva de un jar dependiente no se indexaba correctamente. Tú y tus dos garrapatas implican que no estoy loco, aunque supongo que este problema no se reproduce fácilmente…– CódigoPayaso42
28 de mayo a las 15:56
-
Tal vez dependa de las versiones del complemento de Kotlin. Hay varias partes móviles aquí.
– Gato fantasma
6 de junio a las 9:17
-
la pregunta era para
build.gradle.kts
,tasks.withType<T> { ... }
es la sintaxis DSL de Kotlin Gradle,tasks.withType(T) {
es la sintaxis de Gradle Groovy.– TWiStErRob
16 ago a las 17:36
La respuesta de @ Marian no me ayudó del todo.
Termino configurando lo siguiente en la aplicación build.gradle
Android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget=11
}
...
}
-
¿Esto realmente funcionó para ti? ¡Pensé que Android estaba restringido a jvm 1.8!
– Tom Rutchik
27 abr a las 17:52
-
Desde Android Gradle Plugin 7.0, se requiere Java 11. Y lo anterior me funciona.
– LeoXJ
27 abr a las 18:17
-
Sí, sabía que el complemento Gradle de Android requería Java 11. Ese es el nivel mínimo de JVM necesario para sus compilaciones. Android/compileOption/sourceCompatibiity es el nivel de jvm en el que desea compilar su código de Android, y eso es lo que entiendo que se limita a la versión 1.8. Creo que si usa algunas funciones de Java 11 en su código de Android, creo que se romperá.
– Tom Rutchik
28 abr a las 0:05
-
La versión más alta ya era 11 en 2020. Ver: mobileit.cz/Blog/Pages/android-java-release-train.aspx
– mipá
14 de mayo a las 9:09
Si alguien sigue recibiendo advertencias sobre una tarea de compilación de Java configurada en Java 1.8, puede agregar esto al script de gradle:
afterEvaluate {
tasks.withType<JavaCompile>().configureEach {
sourceCompatibility = JavaVersion.VERSION_11.toString()
targetCompatibility = JavaVersion.VERSION_11.toString()
}
}
Recibía advertencias sobre algunas tareas de compilación de Java en AS y esto me lo resolvió.
Esto funcionó muy bien para mí:
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of("11"))
}
}
De esa manera solo necesito configurarlo una vez.
Raúl Raina
Esta solución funcionó para mí:
Simplemente reemplace la declaración (o similar a esto):
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
con
kotlinOptions {
jvmTarget = "1.8"
}
en todo el nivel del módulo build.gradle
archivos y luego sincronizar gradle.
Espero que esto funcione. ¡Feliz codificación…!
Tenga en cuenta que si no tiene ninguna fuente de Java (solo fuentes de Kotlin), este mensaje en realidad no debería aparecer en absoluto, consulte también youtrack.jetbrains.com/issue/KT-48745.
– sschuberth
24/09/2021 a las 15:25
Creo que el bloque “android” no se resuelve porque no tiene aplicado el complemento “com.android.application” o “com.android.library”
– Tom Rutchik
27 abr a las 17:48