当前位置: 首页 > 知识库问答 >
问题:

Kotlin Multiplatform:添加 Kotlin/Native 作为通用代码

百里锋
2023-03-14

我想创建一个兼容Android和桌面的Kotlin项目。此项目需要绑定到C库。

我的理解是,我应该创建一个Kotlin多平台项目,并有一个公共代码,用JNI封装C库。

但是,静态编程语言/Native允许更轻松地与C库互操作,所以我想使用它。但是似乎静态编程语言/Native是一个平台(等于jvm或android),所以它不能用作通用代码。

有没有办法做我想做的事?我找不到任何简单的例子来做到这一点。

如果不可能,为什么?Kotlin/Native能够针对桌面和android平台。如果可以在Android上使用Kotlin/Native,为什么不能使用来自“普通”桌面/android项目的Kotlin/Native库?

共有1个答案

楚硕
2023-03-14

这在Kotlin多平台上应该是可能的,因为它有一个本地目标。

看https://kotlinlang.org/docs/native-app-with-c-and-libcurl.html#create-a-definition-file

Kotlin/Native有助于使用标准C库,打开了一个完整的功能生态系统,几乎可以满足您的任何需求。Kotlin/Native已经附带了一组预构建的平台库,这些库为标准库提供了一些额外的通用功能。

更新:

Kotlin多平台中的“通用”代码要么:a)具有与平台无关的Kotlin代码,要么b)使用expect/actual定义平台抽象(AFAIK)

由于 C 库不是 a),因此您必须定义实际的平台定义,最终得到 JNI。

TL;KMP博士不适合你的工作

 类似资料:
  • Kotlin-Multiplatform (Android, iOS, JS & JVM Desktop App) This example shows how to create a simple Android/iOS/JVM/JS project sharing some Kotlin code. This app saves on a local database your favouri

  • Kotlin/Native The development of Kotlin/Native was moved to https://github.com/JetBrains/kotlin.Because of that, this repository was archived. Instead of creating new issues in this repository or comm

  • 我想为Github上的静态编程语言android项目做出贡献,但我不知道静态编程语言。假设我将静态编程语言代码转换为Java在Android Studio中使用'Decomload',将我自己的java代码添加到转换的文件中,然后将编辑的文件转换回静态编程语言。如果我直接向其添加代码而不转换为java,那么生成的静态编程语言代码是否相同?如果我想在不了解静态编程语言的情况下为静态编程语言项目做出贡

  • 我有如下java代码: 我使用Android Studio选项“转换为Kotlin”对其进行了转换 下面是它的外观: IDE现在在这里强调了'add'方法: 它说: 未解决的引用:添加 我怎样才能解决这个问题? 更新: 这是我的转换函数: 示例用法:

  • 我有一个Toast通知从项目外部执行(在后台)。这里有: 我的问题是当我尝试执行代码时,当用户点击toast,我想要执行部分代码从主项目。有办法做到这一点吗? 谢谢

  • 不得不说 JetBrains 是一家务实的公司,各种IDE让人赞不绝口,用起来也是相当溜。同样的,诞生自 JetBrains 的 Kotlin 也是一门务实的编程语言,Kotlin以工程实用性为导向,充分借鉴了Java, Scala, Groovy, C#, Gosu, JavaScript, Swift等等语言的精华,让我们写起代码来可谓是相当优雅却又不失工程质量与效率。Kotlin Nativ