【问题标题】:Native C library in Kotlin-JVM/AndroidKotlin-JVM/Android 中的原生 C 库
【发布时间】:2018-08-06 13:35:39
【问题描述】:

有没有办法在没有 JNI 的情况下在 kotlin-jvm 中使用本机 C 库? 用例很简单,我想在 SQLite 等原生库周围使用 kotlin 包装器,而不需要痛苦的 JNI 工作。除了带有 NativeActivity 的样本之外,我没有在样本中找到任何东西。

我找到的关于该主题的所有内容都是这个帖子,不是很详细:https://discuss.kotlinlang.org/t/interoperability-between-kotlin-native-and-kotlin-jvm/5943

【问题讨论】:

  • Android 上的Sqlite 不需要 JNI...?

标签: java android kotlin kotlin-native


【解决方案1】:

正如 Eugene 指出的那样,如果没有 JNI,这是不可能的。我使用了来自 Dropbox 的好人的Djinni。虽然不是灵丹妙药,但它确实减轻了 JNI 工作的痛苦。我还应该指出它的设计目的是与 C++ 一起工作,而不是 C 本身。但也许它仍然对你有用。

【讨论】:

    【解决方案2】:

    目前不可能。您可以使用 Kotlin/JVM 或 Kotlin/Native。 Kotlin/Native 中有 C 库的互操作。

    另外,还有 Kotlin 多平台项目可以绑定 SQLite https://medium.com/@kpgalligan/sqlite-on-kotlin-native-9bcf47854cae

    【讨论】:

      最近更新 更多