当我想C
在 android use 上调用 java 中的本机函数时,我遇到了这个问题JNI
。我将一个指向结构的指针作为该C
函数中的参数传递,并为该指针分配内存。
那么请告诉我如何C
在java中调用这个函数?我google了很长时间,但没有得到任何奖励。
像这样的代码, A 是结构的名称:
JNIEXPORT int JNICALL
Java_pkgname_NativeTools_create(JNIEnv *env, jclass jclazz, A **ptr) {
*ptr = (A*) malloc(sizeof(A));
if (*ptr != NULL ) {
return 0;
} else {
return -1;
}
}
而且我不知道如何编写本机界面:
public class NativeTools{
static {
System.loadLibrary("LibName");
}
// TODO don't know what type in JNI should I use to declare this native function?
public static native int create(?);
}
非常感谢,对不起我糟糕的英语:(