是否可以在 Kotlin-JVM 项目中使用 Kotlin-Native 项目作为库?

问题描述 投票:0回答:1

是否可以在 Kotlin-JVM 项目中使用 Kotlin-Native 项目作为库?基本上我想要的是使用 Kotlin-Native 而不是 JNI 或 JNA 之类的东西。

所以该项目看起来像这样:

project
- application
  - runs on JVM
  - depends on native-lib and core, and other Java/Kotlin JVM libraries
- native-lib
  - contains platform-specific implementation
  - depends on core
- core
  - has no dependencies except maybe kotlin stdlib
  - contains common types so application and native-lib can share data

我发现的只是this三年前的帖子,它说这还不可能,但将会实现。 官方文档根本没有提到这个选项。

那么,有更新吗?我希望有相关文档和/或示例的链接。

如果这是不可能,我该如何创建 JNI 绑定以便我的 JVM Kotlin 代码可以使用 Kotlin/Native 代码?

kotlin kotlin-native
1个回答
0
投票

我没有尝试过这个,但根据Kotin文档,答案是肯定的。 请参阅https://kotlinlang.org/docs/native-dynamic-libraries.html#next-steps。它说:动态库是从现有程序中使用 Kotlin 代码的主要方式。您可以使用它们与许多平台或语言共享您的代码,包括 JVM、Python、iOS、Android 等。

您必须将 kotlin 库转换为动态库。 上面的链接解释了如何做到这一点。该文章解释了如何从 C 应用程序调用动态库,但不幸的是,它没有提供从 kotlin/jvm 调用该库的详细信息。然而,您应该能够创建一个 JNI 包装器来调用动态库。再次不幸的是,本文没有包含显示该情况的示例,但文档再次表明这确实是可能的。

到目前为止,我一直在尝试但没有成功,希望看到它可以在 Kotlin KMM 环境中运行。这当然增加了一个全新的复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.