是否可以在不同的源集中使用 Kotlin 包函数和包属性?当我尝试这样做时,我已经NoSuchMethodError
抛出了。
例子
我有带有 Kotlin 代码和两个源集的 Gradle 项目,main
以及test
. 在main
中,我在其中一个文件中有以下代码:
package ru.ifmo.ctddev.igushkin.dkvs
...
public val payloadSplitter: String = " ### "
在test
我尝试使用payloadSplitter
以下代码访问:
package ru.ifmo.ctddev.igushkin.dkvs
...
public class MessageTests {
...
test fun testParsing() {
...
checkParseAndToString("p1b 345 ${payloadSplitter} set a b c")
}
...
}
而正是在payloadSplitter
访问的第一行,在运行时我得到
java.lang.NoSuchMethodError: ru.ifmo.ctddev.igushkin.dkvs.DkvsPackage.getPayloadSplitter()Ljava/lang/String;
其他全局变量和函数也test
因相同的错误而无法访问。
UPD Kotlin 团队解释了这个问题并在这里宣布了修复。