0
私は配列内のネイティブアドレスを取ってNDKに渡すという同じ手順に従った。 Arraylist pass java to ndk そして、下記の通り、私は、このためにMatの配列をNDKに渡す
JNIEXPORT jint JNICALL Java_com_app_android_flowerhgram_1woutcondition_TemplateMatch_MatchTemplate
(JNIEnv *env, jclass, jlong addrProcessed, jlongArray templates, jobject out){
Mat& mProcesseed = *(Mat *)addrProcessed;
vector <Mat> trainimgs;
jint retVal=0;
int num=0,temp=0;
jclass alCls = env->FindClass("org/opencv/core/Mat");
jmethodID jMatCons = env->GetMethodID(alCls,"<init>","()V");
jmethodID alGetId = env->GetMethodID(alCls, "getNativeObjAddr", "()J");
jmethodID sizeMethodID = env->GetMethodID(alCls, "size", "()I");
jlong *traindata = env->GetLongArrayElements(templates,0);
int intValue = *(int*) sizeMethodID;
for(int k=0;k < intValue ; k++)
{
Mat & newimage=*(Mat*)traindata[k];
trainimgs.push_back(newimage);
}
env->ReleaseLongArrayElements(templates,traindata,0);
return retVal;
}
を行ってネイティブ側では、私はすべてのビルドエラーが直面しているが、私はサイズ Pending exception java.lang.NoSuchMethodError: no non-static method "Lorg/opencv/core/Mat;.size()I
」でエラーを取得してコンパイル中にいないのです。
ために私を導いてくださいこのまたは他のソリューションは、理解されるであろう。
私はorg.opencv.core.Matクラスに精通していませんが、sizeではなくsize(org.opencv.core.Size)を返すサイズではありませんか? – mko
私もorg.opencv.core.Sizeクラスで試してみましたが、同じエラーが繰り返されています。あなたの参照のために私はarray.lengthのアドレスをjavaからNDKに渡しました。 – Gowthaman
私はここでこの行を参照しています:env-> GetMethodID(alCls、 "size"、 "()I"); env-> GetMethodID(alCls、 "size"、 "()Lorg/opencv/core/Size;");を読んではいけません。 – mko