升级到Kotlin 1.0.5后奇怪的“未解决的参考:”错误
我有一个包含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,但没有帮助。
似乎是解决,问题将在上面评论中描述的Kotlin版本中修复。请不要删除这个问题,这可能会对其他遇到此kotlin错误的人有所帮助。
JSBot类是否在其构造函数参数上带有注释的内部类? – yole
它有两个内部类'public final class Orders',它有它自己的内部类'protected final class OpenOrders',但是这些都没有构造函数。然而,我使用'@ Nullable'或'@NotNull'注释来注释我的所有方法和构造函数(当存在构造函数时)。另一个内部类是'public abstract class Order',它包含一个构造函数'public Order(@NotNull PlacedOrder placedOrder)' - 所以是的,看起来这个第二个内部类是一个内部类,在你的构造函数参数中有注释询问了 – ycomp
我刚刚删除了这个'@NotNull',是的它现在编译时没有'JSBot'的* unresolved reference *错误...所以,这是* fix *吗?未来的kotlin版本会不会有这个问题? – ycomp