Обновление:
В ходе дальнейшего расследования я обнаружил проблему
https://youtrack.jetbrains.com/issue/KT- 66523/jvmMain-resources-classpath-is-not-added-when-using-the-multiplatform-project-as-a-module
Путь к классу ресурса не добавляется при использовании путем добавления
Код: Выделить всё
implementation(project(":sevenzipJavm"))
Итак, теперь, если проблема не устранена JetBrains, лучшим решением на данный момент является использование проекта как jar-файла. вместо классов.
но я нашел статическое связывание с jar
Код: Выделить всё
implementation(files("../sevenzipJavm/build/libs/sevenzipJavm.jar"))
- Мне нужно вручную собрать jar из другого проекта, а это не то, что мне нужно.
- Изменения не отражаются автоматически
Опять же, я не показываю, как добавить как классы, но как jar, но не статически.
Старый для справки:
Кажется, я не могу получить доступ ресурсы src\jvmMain\resources\a.txt в jvmMain многоплатформенного проекта.
gradle kts:
Код: Выделить всё
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.android.library)
// id("module.publication")
}
kotlin {
applyDefaultHierarchyTemplate()
jvm()
androidTarget {
publishLibraryVariants("release")
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
// iosX64()
// iosArm64()
// iosSimulatorArm64()
// linuxX64()
sourceSets {
commonMain.dependencies {
}
commonTest.dependencies {
implementation(libs.kotlin.test)
}
androidMain.dependencies {
}
jvmMain {
dependencies {
}
}
}
}
android {
namespace = "org.jetbrains.kotlinx.multiplatform.library.sevenZip"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
}
Код: Выделить всё
val message =
Thread.currentThread().contextClassLoader.getResource("a.txt")?.readText()
println(message)
This code works on pure JVM projects if is not inside multiplatform.
Источник: https://stackoverflow.com/questions/781 ... -depndency
Мобильная версия