Kotlin Klasse NoClassDefFoundError Absturz

8

Ich habe ein Android-Projekt, das die folgenden Bibliotheken verwendet:

  1. AutoValue
  2. Dolch2
  3. RxJava
  4. RetroLambda

Ich versuche, Kotlin Support hinzuzufügen, damit ich das Projekt langsam nach Kotlin migrieren kann. Hier ist was ich getan habe.

  1. Zusätzliche Kotlin-Abhängigkeit hinzugefügt.
  2. Eine der Klassen wurde in die Klasse Kt konvertiert und nach src/main/kotlin/..package..

  3. verschoben
  4. Kotlin im Quellsatz hinzugefügt. sourceSets {     main.java.srcDirs + = 'src / main / kotlin' }

  5. Wenn ich die App sauber bereite und die Anwendung bereitstelle, erhalte ich die NoClassDefFoundError-Ausnahme. Allerdings, wenn ich erneut bereitstellen, funktioniert es gut. Irgendwelche Vorschläge? Ich habe keine Anmerkungen in der konvertierten Klasse, also habe ich kapt plugin nicht angewendet.

Hinweis: Ich benutze neueste Kotlin 1.0.4. Auch ich habe sofort deaktiviert laufen lassen.

    
bond 23.09.2016, 16:21
quelle

3 Antworten

4

Gehe zu Files > Settings und deaktiviere komplett Instant Run , ich meine alle Kontrollkästchen sollten deaktiviert sein.

Projekt säubern und neu erstellen.

Dann sollte es funktionieren

Bearbeiten: Wie Sie bereits erwähnt haben, ist Instant deaktiviert - überprüfen Sie Ihre Konfiguration mit protip und aktualisieren Sie Gradle und Android Studio, wenn Sie nicht die neueste Version verwenden.

Nach diesem issue kann die Gradle-Plugin-Version von 2.10 auf 2.14.1 ändern.

Protip: Verwenden Sie die Kombination Strg + Umschalt + A, um Befehle wie

zu finden
  • Configure Kotlin in Project

  • Configure Kotlin Updates

  • Convert Java File to Kotlin

piotrek1543 23.09.2016 17:24
quelle
0

zuerst müssen Sie Android Studio mit Kotlin zu konfigurieren, für diese Notwendigkeit, Kotlin-Plugin in Android Studio hinzuzufügen, und müssen dann Abhängigkeiten und dann konvertieren Java-Klassen zu Kotlin bitte dieses Video.

Ссылка

    
Lovekush Vishwakarma 13.07.2017 18:24
quelle
0

Suffix die Kotlin-Klassen mit kt beim Aufruf von Java.

Andernfalls fügen Sie @file:JvmName("Utils") vor dem Paket in der Kotlin-Klasse hinzu, wenn Sie es in Java mit einem beliebigen benutzerdefinierten Namen wie Utils in diesem Fall aufrufen müssen.

weitere Details finden Sie hier

    
AyoGitNg 29.08.2017 13:25
quelle