我正在使用 kotlinjs 为 nodejs 开展一个项目,我开始学习 coroutines 并将它们集成到我的代码中,告别回调地狱。
我设法让协程正常工作,我的代码可以编译和执行,一切似乎都很好。
...除了: IDE仍然显示错误 。我为了让协同程序运行而添加的其他库似乎感到困惑。
我目前正在摆弄库依赖项,有时一些错误会消失,但是之后一些代码变红了,之前没问题......
无法访问类' kotlinx.coroutines.experimental.CoroutineContext'。检查模块类路径中是否存在缺失或冲突的依赖项
未解决的参考:JsModule
修饰符'外部'不适用于' class'
您看,我添加launch
时会识别stdlib
,但IDE会抱怨其他两个错误。
再次请注意:在这两种情况下,实际编译都是成功的!
我使用 IntelliJ 2018.1 和 Kotlin插件1.2.41 。
答案 0 :(得分:0)
感谢 youtrack.jetbrains 上的 Alexander Chernikov ,我可以解决我的问题。
我引用他的解释:
问题是JavaScript库应该标记有特殊属性才能被识别。 从
pom.xml
或build.gradle
导入时,会设置此标记,因此该功能有效。 在您的项目中,它们没有标记。目前,要手动更正库,请打开
.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_js_1_2_41.xml
和.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_js_0_22_5.xml
。 在这两个文件中找到type="repository"
并将其替换为type="kotlin.js"
。 确保IDEA看到变化。 (您可以退出IDEA,进行更改并重新启动。)然后,您只能将这两个库保留在依赖项中。编辑应该工作。
以下是问题链接: https://youtrack.jetbrains.com/issue/KT-24575
我还附上了一个带有问题的示例项目。