2016-11-12 193 views
0

我有一個包含2個模塊的項目。一個包含我的java代碼的Java模塊。還有一個包含我的Kotlin代碼的Kotlin模塊。 Kotlin模塊依賴於java模塊。也就是說,Java模塊中沒有任何內容引用Kotlin模塊。但是Kotlin模塊依賴於Java模塊中的Java類。升級到Kotlin 1.0.5後奇怪的「未解決的參考:」錯誤

這個項目我還沒有打開6個月左右。

它以前工作得很好。這是kotlin 1.something。無論是六月份的最新消息。

現在我已更新到最新的Kotlin版本。

但是我的一個java模塊java類不能再從Kotlin模塊中引用。它只是其中的一個類,Kotlin模塊很好地引用了Java模塊中的很多其他類。

我希望有人能告訴我發生了什麼事。也許在過去的6個月裏Kotlin有一些變化導致了這種情況?

的消息我在科特林模塊中引用JSBot所有科特林文件得到的是:

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

在克拉文件的JSBot進口是正確的。來自Java模塊的其他類即使在相同的Java包中也可以被識別並編譯而不會出錯。

這裏是JSBot.java聲明(在Java模塊):

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

等抽象的Java類是從科特林模塊引用罰款雖然。所以我不能真正理解發生了什麼。這只是一個Java類。

但是,在早期的Kotlin版本(v1.0通過6月最新的版本),它編譯得很好。我現在只是得到這個錯誤。我沒有改變任何代碼。只更新到kotlin插件1.0.5

任何人都可以給我一些提示怎麼辦?我被卡住了,無法弄清楚從哪裏出發。

我更新我的maven .pom到1.0.0從1.0.0,但沒有幫助。

+0

JSBot類是否在其構造函數參數上帶有註釋的內部類? – yole

+0

它有兩個內部類'public final class Orders',它有它自己的內部類'protected final class OpenOrders',但是這些都沒有構造函數。然而,我使用'@ Nullable'或'@NotNull'註釋來註釋我的所有方法和構造函數(當存在構造函數時)。另一個內部類是'public abstract class Order',它包含一個構造函數'public Order(@NotNull PlacedOrder placedOrder)' - 所以是的,看起來這個第二個內部類是一個內部類,在你的構造函數參數中有註釋詢問了 – ycomp

+0

我剛剛刪除了這個'@NotNull',是的它現在編譯時沒有'JSBot'的* unresolved reference *錯誤...所以,這是* fix *嗎?未來的kotlin版本會不會有這個問題? – ycomp

回答

0

似乎是解決,問題將在上面評論中描述的Kotlin版本中修復。請不要刪除這個問題,這可能會對其他遇到此kotlin錯誤的人有所幫助。