0

まず、お時間を割いていただきありがとうございます。

Mat (openCV タイプ) の 10 位置配列に到達しようとする Android + JNI アプリを作成しています。私はこのチュートリアルに従っています: 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);
}

何がうまくいかないのか考えていますか?

4

0 に答える 0