我正在尝试在我的android项目中使用预先存在的本机C库。该库使用NDK工具构建得很好......
现在我明白的是我不能只调用库,但我的库需要包含jni.h并添加特定的函数声明,例如:
JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint);
但是由于我使用的是现有的库,我也在其他平台上使用过,我不喜欢用这些定义乱丢整个代码的想法,这些定义最终只能包装我的实际函数......
有解决方法吗?如果这真的是唯一的方法,有没有办法根据我现有的C函数声明/定义自动生成这些?
非常感谢
答案 0 :(得分:1)
使用JDK附带的javah工具,因为它不是Android的SDK和NDK的一部分。
答案 1 :(得分:0)
使用SWIG自动生成jni兼容的c文件。它还会生成.java类,以便您的android与具有所有本机方法的java类进行交互。
看看这个:SWIG Android