错误:带有@OptionalExpectation注释的声明只能在通用模块源中使用

时间:2018-11-08 21:09:54

标签: kotlin kotlin-multiplatform

更新(2018-11-03)

这是一个here正在跟踪的已知问题。

原始帖子

我正在使用Kotlin MPP,特别是Kotlin 1.3和新结构。将Kotlin 1.2 MPP转换为新结构后,我不断出现以下错误:

Error:(3, 18) Kotlin: [MPP_jvmMain] Declaration annotated with '@OptionalExpectation' can only be used in common module sources

这些是指我在通用模块中拥有的@JsName()注释。

我尝试过:

  • 使用内置向导从头开始全新的MPP,然后将@JsName("test")添加到生成的示例随附的hello()函数中。即使那样似乎也会引起问题。
  • 使缓存无效/重新启动IntelliJ
  • 使用所有组件的最新版本(Kotlin 1.3,IntelliJ IDEA 2018.2.5 Ultimate)
  • 从命令行调用./gradlew build。这可行。

Sample project here

Link Kotlin Issue

2 个答案:

答案 0 :(得分:0)

在IntelliJ的最新版本中,我也遇到了这个问题

“ IntelliJ IDEA 2018.3 EAP(社区版) 版本#IC-183.4284.36,建于2018年11月7日 JRE:1.8.0_152-release-1343-b15 x86_64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM macOS 10.13.6“

MPP可以使用gradle很好地构建,但是不能在IDE中构建。使得调试非常困难。

在修复该错误之前,是否有人找到解决方法?

答案 1 :(得分:0)

此问题已在IntelliJ的Kotlin插件的v1.3.10中修复。