Я делаю мультиплатформенный проект.
Часть моего файла gradle выглядит следующим образом
...
kotlin {
jvm()
jvm("api")
js()
mingwX64("mingw")
sourceSets {
...
val jvmMain by getting {
dependencies {
implementation ("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}
}
val jvmTest by getting {
dependencies {
implementation ("org.jetbrains.kotlin:kotlin-test")
implementation ("org.jetbrains.kotlin:kotlin-test-junit")
}
}
val apiMain by getting {
dependencies {
dependsOn(jvmMain)
}
}
val jsMain by getting {
dependencies {
implementation ("org.jetbrains.kotlin:kotlin-stdlib-js")
}
}
...
}
}
Теперь в источниках commonsMain я получаю ошибку IDE (красное подчеркивание), которая говорит«ожидаемый класс Sample не имеет фактического объявления в apiMain», но apiMain зависит от jvmMain, у которого есть фактическое объявление.
Я не думаю, что мне нужно фактическое объявление в apiMain, так как у меня уже есть такое в jvm.
Должен ли я использовать другой подход при настройке исходных наборов?
В любом случае, проект компилируется нормально, и я могу запустить apiMain, но ошибка IDE меня действительно раздражает.