У меня есть массив объектов, который инициализируется в Java, как показано ниже:
Record[] pRecords = new Record[5];
ret = GetRecord(pRecords);
Я передал этот массив в JNI, из JNI он будет вызывать CPP, и, наконец, массив будет заполнен.
JNIEXPORT jint JNICALL Java_GetRecord
(JNIEnv *jEnv, jobject ObjApp, jobjectArray jRecords)
{
Record *pRecords = (Record *)malloc(5*sizeof(Record ));
ret = Get_Record(pRecords); // call to CPP
if(SUCCESS == ret)
{
jclass c = (jEnv)->GetObjectClass(jRecords);
jfieldID fid = (jEnv)->GetFieldID(c, "m_session", "I");
(jEnv)->SetIntField (jRecords, fid, pRecords [0].value);
}
}
Я получаю fid
NULL
.Как присвоить pRecords[0].value
0-му массиву jRecords
?