CallLongMethod JNI Android SIGSEGV

时间:2013-07-16 08:52:06

标签: android opencv java-native-interface sigsegv

首先,感谢您的时间和帮助。

我正在制作一款Android + JNI应用程序,试图达到Mat(openCV类型)的10位数组。 我正在学习本教程:Pass an array of Mats to native code

但是当我到达“CallLongMethod”行时,它会抛出一个SIGSEGV错误。我检查了非指针(getPtrMethod,bufimgsfieldid,bufimgsArray)是0.代码在这里:

jmethodID getPtrMethod = env->GetMethodID(matclass, "getNativeObjAddr", "()J");
jfieldID bufimgsfieldid = env->GetFieldID(thisclass, "bufImgs", "[Lorg/opencv/core/Mat;");
jobjectArray bufimgsArray = (jobjectArray)env->GetObjectField(thisobject, bufimgsfieldid);

Mat* nativeBufImgs = new Mat[10];
LOGD("Creation Passed");
for (int i = 0; i < 10; i++) {
    LOGD("Makint the  %i", i);
    nativeBufImgs[i] = *(Mat*)env->CallLongMethod(env->GetObjectArrayElement(bufimgsArray, i), getPtrMethod);
}

有什么想法会出错?

0 个答案:

没有答案