2

我正在尝试在我的 android 项目中使用预先存在的本机 C 库。该库使用 NDK 工具构建得很好...

现在我明白了,我不能只调用库,而是我的库需要包含 jni.h 并添加特定的函数声明,例如:

JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint);

但是由于我使用的是现有的库,我也可以在其他平台上使用我不喜欢用这些定义乱扔整个代码的想法,这些定义最终只会包装我的真实功能......

有没有解决的办法?如果这真的是唯一的方法,有没有办法根据我现有的 C 函数声明/定义自动生成这些?

非常感激

4

2 回答 2

1

使用 JDK 附带的javah工具,因为它不是 Android 的 SDK 或 NDK 的一部分。

于 2009-12-04T19:11:35.840 回答
0

使用 SWIG 自动生成 jni 兼容的 c 文件。它还生成 .java 类,以便您的 android 与包含所有本机方法的 java 类进行交互。

看看这个:SWIG Android

于 2013-12-06T14:26:27.690 回答