是否可以在不同的源集中使用 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 团队解释了这个问题并在这里宣布了修复。