首先,感谢您的时间和帮助。
我正在制作一款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);
}
有什么想法会出错?