我想创建一个与Android和桌面兼容的Kotlin项目。此项目需要绑定到C库。
据我所知,我应该创建一个Kotlin多平台项目,并有一个使用JNI包装C库的通用代码。
但是,Kotlin/Native允许与C库更容易地互操作,所以我想使用它。但似乎Kotlin/是一个平台(相当于jvm或android),因此不能作为通用代码使用。
有办法做我想做的事吗?我找不到任何简单的例子。
如果不可能,为什么?Kotlin/原住民能够瞄准桌面和android平台。如果可以在Android上使用Kotlin/Native,为什么不能从“普通”桌面/android项目中使用Kotlin/Native呢?
发布于 2022-06-29 09:14:43
通过有一个本机目标,应该可以做到这一点。
请参阅https://kotlinlang.org/docs/native-app-with-c-and-libcurl.html#create-a-definition-file
Kotlin/Native帮助使用标准C库,为您可能需要的几乎任何东西打开了一个完整的功能生态系统。Kotlin/本机已经随一组预先构建的平台库一起提供了,这些库为标准库提供了一些额外的公共功能。
更新:
Kotlin多平台下的“公共”代码:( a)具有与平台无关的Kotlin代码或( b)使用expect/AFAIK来定义平台抽象(AFAIK)。
因为C库不是a),所以您必须定义实际的平台定义,并以JNI结束。
TL; KMP博士不适合你想要做的事情
https://stackoverflow.com/questions/72790293
复制相似问题