Beim Versuch, die Beispiel-CorDapp auszuführen ( https://github.com/corda/cordapp-example ) über IntelliJ , wird folgende Fehlermeldung :
Mit JVM-Ziel 1.8 erstellter Bytecode kann nicht in Bytecode integriert werden, der mit JVM-Ziel 1.6 erstellt wird
Wie kann ich die IntelliJ-Einstellungen so ändern, dass der gesamte Bytecode mit demselben JVM-Ziel erstellt wird?
build.gradle
Abhängigkeiten hinzufügte {compile ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}Antworten:
app / build.gradle
GL
Verwenden Sie Java 8-Sprachfunktionen
quelle
kotlinOptions { jvmTarget = "1.8" }
sollte ausreichen.Sie können dieses Problem wie folgt beheben:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
ABEROther Settings
>Kotlin compiler
wenn Android Studio>3.4
Target JVM version
in1.8
Apply
quelle
Target platform
zu 1.8 JVM auf IhremKotlin
Facet unter demGeneral
Registerkarte.Kotlin Compiler
Einstellungen tatsächlich inOther Settings
Abschnitt platziert .Sie sollten in build.gradle Folgendes konfigurieren
quelle
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
Plugin zum Laufen bringt?In meinem Fall hat es nicht geholfen, nur die Ziel-JVM-Version wie folgt zu ändern: Datei> Einstellungen> Kotlin-Compiler> Ziel-JVM-Version> 1.8. Der Fehler bei der Kompilierungszeit wurde jedoch behoben. Aber zur Laufzeit fehlgeschlagen.
Ich musste auch Folgendes in die App build.gradle-Datei einfügen, damit es funktioniert.
quelle
Wenn die anderen Lösungen für Sie nicht funktionierten (Ändern der JVM-Version in den Compiler-Einstellungen und Hinzufügen
jvmTarget
zu Ihrenbuild.gradle
),.iml
können Sie die Zielplattform in den Projekteinstellungen ändern , da Ihre Dateien versuchen, ihre Konfigurationen zu erzwingen.File > Project Structure
Facets
untenProject Settings
+
SchaltflächeTarget Platform
inJVM 1.8
(es ist auch besser, dieUse project settings
Option zu aktivieren )quelle
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
antrue
und es funktionierte. Die Datei ändert sich jedoch immer wieder!In meinem Fall hat dieser Code nicht funktioniert, bis ich
apply plugin: 'kotlin-android'
von unten nach oben gegangen bin .quelle
In Android Studio 4.3.2 funktioniert das Hinzufügen über das folgende Verfahren nicht.
Der Grund dafür ist, dass Android Studio den folgenden Code nicht in die Gradle-Datei auf Modulebene einfügen kann. Bitte fügen Sie es manuell hinzu.
Suchen Sie nur für das Addon die Target JVM-Version in der Android Studio-Suche. Sie gelangen direkt zur Option.
quelle
Ein Bild sagt mehr als tausend Worte
quelle
Feb 2020
android 3.4+
Gehen Sie zu Datei -> Einstellungen -> Kotlin Compiler -> Ziel-JVM-Version> auf 1.8 und stellen Sie dann sicher, dass Sie Datei -> Projekt mit Gradle-Dateien synchronisieren
oder fügen Sie dies in build.gradle (Modul: App) ein. im Android- Block:
quelle
Wie es im using-maven geschrieben steht Dokumenten von der Kotlin-Website geschrieben steht:
Sie müssen nur
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
in den Eigenschaftenbereich Ihrer pom.xml einfügenquelle
Wenn Sie viele Quellensätze / Module haben, kann es umständlich sein, das jvmTarget für jedes von ihnen separat zu konfigurieren.
Sie können das jvmTarget für alle gleichzeitig wie folgt konfigurieren:
Dieses Snippet kann auf der obersten Ebene Ihrer gradle.build-Datei verwendet werden
Nach dem Ändern der Gradle-Datei
Reimport All Gradle Imports
. Um zu überprüfen, ob es funktioniert hat, öffnen SieProject Structure
und überprüfen Sie, ob IntelliJJVM 1.8
allen Kotlin-Modulen korrekt zugewiesen wurde . Es sollte so aussehen:Ich würde nicht empfehlen, die Plattform direkt in IntelliJ zu ändern, da jeder andere, der Ihr Projekt zum ersten Mal klont, wahrscheinlich mit demselben Problem konfrontiert ist. Die korrekte Konfiguration in Gradle hat den Vorteil, dass sich IntelliJ von Anfang an korrekt für sie verhält.
quelle
In meinem Fall habe ich dies durch Befolgen dieser beiden Schritte gelöst
quelle
Für mich war der Grund, dass diese Konfiguration in meinem Build-Gradle in einigen Modulen enthalten war und in einigen nicht
quelle
Fügen Sie für Gradle mit Kotlin-Sprache (
*.gradle.kts
Dateien) Folgendes hinzu:quelle
this
zuKotlinJvmOptions
. Ist derthis
Empfänger nicht schon imkotlinOptions
BlockKotlinJvmOptions
? Trotzdem funktioniert es nicht für mich ohne die BesetzungIn den meisten Fällen reicht dies aus:
Wenn Sie benutzerdefinierte Gradle-Aufgaben wie
integrationTest
z. B. deklariert haben , fügen Sie auch eine Konfiguration hinzu fürcompile<YourTaskName>Kotlin
:quelle
Die Einstellung
sourceCompatibility = JavaVersion.VERSION_1_8
aktiviert das Desugaring, kann jedoch derzeit nicht alle vom Kotlin-Compiler verwendeten Java 8-Funktionen desugarieren.Fix - Die Einstellung
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
im App-Modul Gradle würde das Problem beheben.quelle
Alle Antworten hier verwenden gradle, aber wenn jemand wie ich hier landet und eine Antwort für maven benötigt:
Die Änderung vom Jetbrains-Archetyp für kotlin-jvm ist die
<configuration></configuration>
Angabe des jvmTarget. In meinem Fall 11quelle
Nichts hat bei mir funktioniert, bis ich meine Kotlin-Plugin-Abhängigkeit aktualisiert habe.
Versuchen Sie
Folgendes : 1. Ungültig machen und neu starten.
2. Projekt synchronisieren (zumindest versuchen)
3. Gehen Sie zu Datei -> Projektstruktur -> Vorschläge.
4. Wenn es ein Update zu Kotlin gibt, aktualisieren Sie es.
Hoffe es wird jemandem helfen.
quelle
Wenn Sie Visual Studio Code ** mit der Kotlin-Erweiterung verwenden, gehen Sie zur Plugin-Verwaltung Strg + Umschalt + x, geben Sie kotlin ein und klicken Sie auf Verwalten (das kleine Zahnrad) >> Erweiterungseinstellungen konfigurieren
auf Kotlin >> Compiler >> Jvm: Ziel - Geben Sie die Java-Version ein. In meiner Situation habe ich gerade 1.8 eingegeben
Und dann neu starten :-)
** vscode oder einfach 'code' für linux
quelle
In meinem Fall Datei> Einstellung> Kotlin-Compiler> Ziel-JVM-Version> 1.8
quelle
Ich benutze Kotlin und Gradle für die normale JVM-Entwicklung (nicht für Android) und dies funktionierte für mich in
build.gradle
:quelle
Wenn Sie Eclipse verwenden, vorausgesetzt, Sie haben das Kotlin-Plugin heruntergeladen:
Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Kotlin Compiler -> Projektspezifische Einstellungen aktivieren -> JVM-Zielversion "1.8"
quelle
Bei neueren Versionen von Android Studio funktionierte das Ändern nur der Kotlin Target VM-Version nicht.
Datei ➞ Projektstruktur ➞ Module (
app
): Setzen Sie sowohl " Quellkompatibilität " als auch "Zielkompatibilität" auf "1.8 (Java 8)". Drücken Sie "OK" und synchronisieren Sie das Projekt mit Gradle.quelle
Wenn Sie in Android-Projekt sind
im build.gradle deiner App unter android {}
quelle
Mit dem Kotlin Gradle DSL löste dies das Problem für mich. Ich habe dies zu build.gradle.kts hinzugefügt. Dies ist zusätzlich zu der Antwort von Joel
quelle
Ein weiterer Hinweis für Eclipse-Benutzer. Nachdem ich die von anderen Benutzern angegebenen JVM-Zieleinstellungen noch einmal überprüft hatte, hatte ich immer noch das gleiche Problem, das durch das Fehlen der Kotlin Runtime Library verursacht wurde. Wenn Sie beispielsweise ein Projekt mit Spring Initializr erstellen, wird es nicht automatisch hinzugefügt. Zum Hinzufügen:
right click on your project -> Build path -> Add libraries... -> User Library
und einfach hinzufügenorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Stellen Sie sicher, dass Sie Ihr Gradle-Projekt anschließend aktualisieren (
right click -> Gradle -> Refresh gradle project
)quelle
Wenn Sie diese Meldung in einem Spring Boot / Kotlin-Projekt sehen, setzen Sie einfach die Eigenschaft "kotlin.compiler.jvmTarget" in Ihrer pom.xml auf "1.8".
quelle
In meinem Fall wurde jvmTarget bereits
build.gradle
wie folgt in der Datei festgelegt.Aber mein Problem war immer noch da. Schließlich wird es nach dem Ändern der Ziel-JVM-Version von 1.6 auf 1.8 unter Einstellungen> Andere Einstellungen> Kotlin-Compiler> Ziel-JVM-Version behoben. siehe beigelegtes Foto,
quelle