Wie setze ich die CompileJava-Aufgabe (11) und die JVM-Zielkompatibilität der Aufgabe „CompileKotlin“ (1.8) auf dieselbe Java-Version in build.gradle.kts?
FEHLER: Die Aufgabe „compileJava“ (aktuelles Ziel ist 11) und die Aufgabe „compileKotlin“ (aktuelles Ziel ist 1.8) jvm-Zielkompatibilität sollte auf dieselbe Java-Version eingestellt werden.
Wenn ich Android {} auskommentiere, Fehler: Skriptkompilierungsfehler:
Line 15: android {
^ Unresolved reference: android
Danke für deine Zeit und Mühe 🙂 Jitendra
Beachten Sie, dass diese Meldung eigentlich gar nicht erscheinen sollte, wenn Sie keine Java-Quellen (nur Kotlin-Quellen) haben, siehe auch youtrack.jetbrains.com/issue/KT-48745.
– Schubert
24. September 2021 um 15:25 Uhr
Ich glaube, dass der “Android”-Block nicht aufgelöst wird, weil Sie weder das Plugin “com.android.application” noch das Plugin “com.android.library” angewendet haben
– Tom Rutschik
27. April um 17:48 Uhr
Marian
Sie können die Java-Version für Java mit festlegen
Hinweis: Wenn ich Ihre verwende tasks.withType<> wie es ist, bekomme ich Could not get unknown property 'withType' for task set of type org.gradle.api.internal.tasks.DefaultTaskContainer . Fehler verschwindet bei der Verwendung tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {; Also Klammern statt < >. Aber leider führt das immer noch zu derselben Warnung, nach der der Fragesteller gefragt hat ;-(
– Geisterkatze
17. Februar um 7:43 Uhr
@GhostCat Ich bin gerade mit einer alten Build-Datei darauf gestoßen Gebraucht richtig funktionieren (mit <> nicht ()), nachdem ich die aktualisiert habe kotlin("jvm") Ausführung. Ich nahm an, dass es sich um eine schrittweise API-Änderung handelte, konnte aber keinen korrekten Weg finden, dies zu tun. :\ Das einzig Wichtige dazwischen war ein “Caches ungültig machen und neu starten”, weil eine neuere Version einer abhängigen JAR-Datei nicht richtig indiziert wurde. Sie und Ihre zwei Häkchen implizieren, dass ich nicht verrückt bin, obwohl ich annehme, dass dieses Problem nicht leicht zu reproduzieren ist …
– CodeClown42
28. Mai um 15:56 Uhr
Vielleicht hängt es von den Kotlin-Plugin-Versionen ab. Hier gibt es verschiedene bewegliche Teile.
– Geisterkatze
6. Juni um 9:17
Die Frage war für build.gradle.kts, tasks.withType<T> { ... } ist Kotlin Gradle DSL-Syntax, tasks.withType(T) { ist Gradle Groovy-Syntax.
– TWiStErRob
16. August um 17:36 Uhr
@ Marians Antwort hat mir nicht ganz geholfen.
Am Ende setze ich Folgendes in der App build.gradle
Hat das wirklich für dich funktioniert? Ich dachte, Android sei auf jvm 1.8 beschränkt!
– Tom Rutschik
27. April um 17:52 Uhr
Seit Android Gradle Plugin 7.0 wird Java 11 benötigt. Und das obige funktioniert für mich.
– LXJ
27. April um 18:17 Uhr
Ja, ich wusste, dass das Android-Gradle-Plugin Java 11 benötigt. Das ist die minimale JVM-Stufe, die für Ihre Builds benötigt wird. Android/compileOption/sourceCompatibiity ist die JVM-Ebene, auf die Ihr Android-Code kompiliert werden soll, und das ist, was ich verstehe, auf Version 1.8 beschränkt. Ich denke, wenn Sie einige Java 11-Funktionen in Ihrem Android-Code verwenden, wird es meiner Meinung nach kaputt gehen.
Wenn jemand weiterhin Warnungen über eine Java-Kompilierungsaufgabe erhält, die auf Java 1.8 eingestellt ist, können Sie dies dem Gradle-Skript hinzufügen:
in der gesamten Modulebene build.gradle Dateien und dann gradle synchronisieren.
Hoffe das funktioniert. Viel Spaß beim Programmieren…!
14311700cookie-checkWie setze ich die CompileJava-Aufgabe (11) und die JVM-Zielkompatibilität der Aufgabe „CompileKotlin“ (1.8) auf dieselbe Java-Version in build.gradle.kts?yes
Beachten Sie, dass diese Meldung eigentlich gar nicht erscheinen sollte, wenn Sie keine Java-Quellen (nur Kotlin-Quellen) haben, siehe auch youtrack.jetbrains.com/issue/KT-48745.
– Schubert
24. September 2021 um 15:25 Uhr
Ich glaube, dass der “Android”-Block nicht aufgelöst wird, weil Sie weder das Plugin “com.android.application” noch das Plugin “com.android.library” angewendet haben
– Tom Rutschik
27. April um 17:48 Uhr