我可以从Kotlin共享模块(多平台项目)加载资源吗?

22
我正在将一个使用Maven的JVM Kotlin项目转换为一个使用Gradle多平台的Kotlin项目。在从Intellij IDEA创建默认的Kotlin多平台项目后,我注意到有一个名为resources的目录,但是我唯一知道如何从资源目录加载文件的方法是JVM特定的(this.javaClass.classLoader.getResourceAsStream(name))
我最初的搜索并没有找到一种平台无关的使用Kotlin标准库加载资源的方法。我是否遗漏了什么,或者说resources目录在通用模块中是无用的?我需要它的原因是为了在javascript模块和jvm模块中都能加载测试数据。

Gradle for jvm和Webpack for js都可以配置为使用共同的资源。 - AlexO
1个回答

0

看起来公共/资源文件夹被忽略了。我使用了一个额外的Java模块来在项目之间共享资源。

由于您的JavaScript模块可能需要从服务器加载资源,因此您在Kotlin中访问它们的方式必须与Java模块不同。

在JS模块中,您可以使用以下命令从服务器加载文件:

Request("https://pastebin.com/raw/p58mH6Cd").text().then(onFulfilled = {println(it)})

这是针对Kotlin 1.2还是1.3的? - 4ntoine
1
@Fluxparticle是正确的。Kotlin Multiplatform中的资源取决于平台。从Kotlin Multiplatform 1.6.x开始,资源需要在具体的平台代码中处理。 - wartoshika

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接