Kotlin Foo::class.java "nicht aufgelöste Referenz: Java -" Fehler
Ich versuche meine konvertieren von Java-code von HomePage.class
zu Kotlin. Ich bin nach der Anleitung auf Kotlin.org:
getClass()
Abrufen, die Art von Informationen aus einem Objekt, verwenden wir die javaClass
Erweiterungs-Eigenschaft.
val fooClass = foo.javaClass
Statt Java
Foo.class
verwenden
Foo::class.java
.
val fooClass = Foo::class.java
Habe ich eine Klasse namens HomePage erweitert AppCompatActivity (in Android). Ich bin mit Android Studio. Ich habe versucht zu tun HomePage::class.java
und es hat einen Fehler: Unresolved reference: java
Wie bekomme ich diese zu arbeiten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem ist wahrscheinlich, dass Sie vergessen haben, hängen die Reflexion Bibliotheken, die erforderlich waren für die reflektierende Funktionen Kotlin.
Quelle
Es stellt sich heraus, ich war mit einer älteren version der Kotlin, und es war nicht richtig konfiguriert. Ich bearbeitet die gradle-Datei, um die neueste beta-version, und wählte die option, die konfiguriert Kotlin, und es funktioniert jetzt.
In gradle:
Ich in den Anfang von Gradle (Modul app)
und
oder
in die Abhängigkeiten Abschnitt
In der build.gradle (Projekt)
Für eine einfache Referenz, hier sind die Reflexions-Abhängigkeiten bei der Verwendung von Gradle:
Reflexion Bibliotheken aus dem docs für Gradle in Ihrem
build.gradle
Reflexion Bibliotheken syntax für Kotlin Skript Gradle DSL in Ihrem
build.gradle.kts
Kopiert habe ich die Klasse aus anderen Projekt-und vergessen, die Klasse zu wechseln package-Namen.
wenn ich geändert habe, ist es behoben
Ich habe das in AndroidStudio mit Kotlin 1.2.71 und keine der oben genannten fixen es für mich.
Was
leiderlächerlich für mich gearbeitet war der Abschluss des Projekts, erzählt AndroidStudio, das Projekt zu vergessen und neu öffnen aus dem Ordner. Presto, keine nicht aufgelösten Verweis. Komisch, ich weiß.Invalidate Cache and restart
? Oder war es etwas anderes ?Invalidate Cache and Restart
ersten. Ich ging zum Bildschirm, wenn kein Projekt geöffnet ist und geklickt, dass ecks (x), die sagt, es zu vergessen, das Projekt und anschließend neu eröffnete es neu. Etwas mit dem initial-setup zuckenIn meinem Fall die Verringerung version der kotlin das Problem
Ändern
Zu
Fügen Sie diese Zeile in dein Modul build gradle
Im Projekt-build gradle:
Ich verwendet
Statt