当我想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(?);
}
非常感谢,对不起我糟糕的英语:(