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