まず、お時間を割いていただきありがとうございます。
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);
}
何がうまくいかないのか考えていますか?