Gradle Projekt: java.lang.NoClassDefFoundError: kotlin / jvm / internal / Intrinsics

8

Ich arbeite an einem Java Projekt und innerhalb dieses Projektes habe ich meinen ersten Versuch mit Kotlin gemacht. Ich habe angefangen, einige Klassen mit dem JavaToKoltin-Konverter, der in Intellij Idea zur Verfügung gestellt wird, nach Kotlin zu konvertieren. Unter anderem werden meine benutzerdefinierten Ausnahmen jetzt zu Kotlin konvertiert. Aber damit funktioniert die Ausnahmebehandlung nicht mehr korrekt.
Wenn ich eine meiner benutzerdefinierten Ausnahmen (z. B. MyCustomKotlinException.kt ) innerhalb des Java-Codes ausspreche, wird die Ausnahme nicht abgefangen (siehe Code unten).

%Vor%

So kann mir jemand erklären warum die Ausnahme nicht zu fangen ist. MyCustomKotlinException erbt von Kotlins RuntimeException , was nur ein Alias ​​für java.lang.RuntimeException ist.

%Vor%

Aktualisierung:
Ich habe den Wurfteil in 2 Reihen geteilt (Instanzerstellung und Wurf) und festgestellt, dass das Problem nicht das Werfen ist. Der try-Block bleibt nach der Instanzerstellung bestehen. Ist irgendetwas falsch mit meiner Instanz-Erstellung dieser Kotlin-Klasse?

Update2:
Ich habe einen zweiten catch-Block mit Throwable hinzugefügt und das folgende Throwable wird abgefangen.

%Vor%

Update3:
Der Titel wurde geändert, um den Fehler zu korrigieren, und das Problem beim Hinzufügen aller Projektdateien zu jar wurde behoben (siehe Antwort unten). Das Hinzufügen der Kotlin-Laufzeit-Lib zu Gradle funktioniert nicht für mich.

    
FreshD 26.05.2017, 08:56
quelle

4 Antworten

5

Das Hinzufügen aller Projektdateien zum Glas hat das Problem für mich behoben. Ich habe die folgende Zeile zu meinem build.gradle

hinzugefügt %Vor%     
FreshD 26.05.2017, 13:08
quelle
3

Sie müssen Ihr Projekt mit Kotlin konfigurieren. Also im Android Studio:

  1. klicken Sie auf Extras = & gt; Kotlin = & gt; Konfigurieren Sie Kotlin im Projekt

  2. Dann im Dialog überprüfen: Alle Module enthalten Kotlin-Dateien

  3. und wählen Sie die Version

  4. drücke ok

Fertig.

    
Suraj Vaishnav 16.06.2017 07:37
quelle
2

Hatte das gleiche Problem, kompiliere mein Projekt mit Ant in der Konsole. Ich habe kotlin-stdlib.jar in den Klassenpfad eingegeben und das Problem ist weg.

    
DmitryKanunnikoff 01.11.2017 17:41
quelle
0

Ich werde sagen, dass Sie versuchen, Kotlin-Code ohne die kotlin-runtime -Bibliothek auszuführen

Überprüfen Sie, welches System Sie verwenden, und fügen Sie die erforderliche JAR-Datei hinzu. Sie können überprüfen, ob dies Ihr Problem ist, indem Sie Ihr Projekt in eine .jar -Datei packen und es mit der Laufzeitumgebung ausführen Bibliothek

    
Pelocho 26.05.2017 12:49
quelle