在Kotlin和C++之间通过JNI进行接口传递时,需要注意两边参数定义的映射关系。JNI(Java Native Interface)为Java(Kotlin也适用)与本地语言(如C/C++)之间的交互提供了桥梁。在Kotlin中定义的外部函数和C++中的实现需要通过JNI签名相互对应。
Kotlin端
在Kotlin中,我们定义一个包含external方法的类。例如:
package com.example.native
class NativeLib {
external fun stringFromJNI(): String
external fun addNumbers(a: Int, b: Int): Int
companion object {
init {
System.loadLibrary("native-lib")
}
}
}
C++端
在C++中,我们需要定义与Kotlin中external方法对应的函数实现,并使用正确的JNI签名。每个参数类型在JNI中都有对应的类型签名。
常见JNI类型签名
| Kotlin类型 | JNI签名 | C++类型 |
|---|---|---|
| Int | I | j |

734

被折叠的 条评论
为什么被折叠?



