2016-11-12 3 views
0

Ich habe ein Projekt, das 2 Module enthält. Ein Java-Modul, das meinen Java-Code enthält. Und ein Kotlin-Modul, das meinen Kotlin-Code enthält. Das Kotlin-Modul hängt vom Java-Modul ab. Das heißt, im Java-Modul gibt es nichts, was auf das Kotlin-Modul verweist. Aber das Kotlin-Modul stützt sich auf Java-Klassen aus dem Java-Modul.Seltsame "Ungelöste Referenz:" Fehler nach dem Upgrade auf Kotlin 1.0.5

Dieses Projekt habe ich seit 6 Monaten oder so nicht geöffnet.

Es hat vorher gut funktioniert. Es war Kotlin 1.etwas. Was auch immer der letzte im Juni war.

Jetzt habe ich auf die neueste Kotlin-Version aktualisiert.

Aber eine meiner Java-Modul-Java-Klassen kann nicht mehr vom Kotlin-Modul referenziert werden. Es ist nur eine der Klassen, das Kotlin-Modul referenziert viele andere Klassen aus dem Java-Modul noch gut.

Ich hoffe, dass mir jemand sagen kann, was vor sich geht. Vielleicht gab es in den letzten 6 Monaten einige Veränderungen in Kotlin, die das verursachen? diese

Die Botschaft, die ich in allen Kotlin Dateien im Kotlin Modul erhalten, die JSBot Referenz ist:

Error:(191, 39) Kotlin: Unresolved reference: JSBot 

Der JSBot Import in den kt-Dateien korrekt ist. Andere Klassen aus dem Java-Modul werden sogar im selben Java-Paket erkannt und kompilieren ohne Fehler.

Hier ist die JSBot.java Deklaration (im Java-Modul):

public abstract class JSBot extends Evaluable implements Name { 
... 
} 

Andere abstrakte Java-Klassen in Ordnung aus dem Kotlin Modul obwohl referenziert werden. Ich kann also nicht wirklich verstehen, was vor sich geht. Es ist nur diese eine Java-Klasse.

Aber in früheren Kotlin-Versionen (v1.0 durch was auch immer im Juni) war es kompiliert. Ich bekomme diesen Fehler jetzt. Ich habe keinen Code geändert. Nur aktualisiert auf Kotlin-Plugin 1.0.5

Könnte mir jemand einige Hinweise geben, was zu tun ist? Ich stecke fest und kann nicht herausfinden, wohin ich von hier aus gehen soll.

Ich aktualisierte meine maven .pom 1.0.5 von 1.0.0, aber das hat nicht geholfen.

+0

Hat die JSBot-Klasse innere Klassen mit Anmerkungen zu ihren Konstruktorparametern? – yole

+0

Es hat 2 innere Klassen 'public final class Orders', die ihre eigene innere Klasse' protected final class OpenOrders' haben, jedoch keine von diesen Konstruktoren. Ich notiere jedoch alle meine Methoden und Konstruktoren (wenn es Konstruktoren gibt) mit "@ Nullable" - oder "@ NotNull" -Anmerkungen. Und die andere innere Klasse ist 'public abstract class Order', die einen Konstruktor 'public Order (@NotNull PlacedOrder placedOrder) enthält '- also scheint es, dass diese zweite innere Klasse eine solche innere Klasse mit Annotationen in den Konstruktorparametern ist wie Sie fragte nach – ycomp

+0

Ich habe nur dieses '@ NotNull' entfernt und ja, es kompiliert jetzt ohne * nicht aufgelöste Referenz * Fehler für' JSBot' ... also, ist das die * fix *? werden zukünftige kotlin-Versionen immer noch dieses Problem haben? – ycomp

Antwort

0

scheint gelöst werden, Problem wird in Kotlin Release in den Kommentaren oben behoben werden. Bitte lösche diese Frage nicht, sie könnte anderen helfen, die auf diesen Kotlin-Bug treffen.

Verwandte Themen