1)image_api.h定义了以下方法 - int process_image(const char * svgData,void ** mapData);如何将void **传递给来自JNI C代码的C库?
2)现在我需要调用此方法,并传递正确的价值观,以process_image是从image_api.so文件
加载 - 请告诉我在JNI C包装代码中创建无效**的情况下正确的做法?
3)
JNIEXPORT jint JNICALL Java_JNITest_process_image(JNIEnv *env, jstring svgData, jobject mapData, jint status) {
const char *str;
str = (*env)->GetStringUTFChars(env, svgData, NULL);
**status = process_image(str, (void**)&mapData);**
return status;
}
////////////
我面对UnsatisfiedLinkError在调用process_image方法签名不匹配
'mapData'的类型是'jobject'的。这是一个指针吗? 'process-image'想要一个指向指针的指针。你正在传递一个指向'jobject'的指针。 – lurker
'Java_JNITest_process_image'看起来不像一个有效的方法引用...除非你正在运行'JNITest'包名中的所有东西。但即使如此 - 不应该像'Java_JNITest_JNITest_process_image'这样的东西(假如你的类也被命名为'JNITest')?方法声明中的类名称在哪里? – Shark