NullPointerException 试图从 JNI 填充数组

NullPointerException trying to populate array from JNI

当我从 JNI.I 调用 setTimeStamp 方法时收到空指针异常,想在 JNI 端填充数组。(数组是自定义对象的数组)

可用数据

public class DataAvailable {
String timestamp;
public void setTimeStamp(String timestamp) {
    System.out.println("Timestamp is "+timestamp);
    this.timestamp = timestamp;
}

JNIWrapper.java

public native int pax_store_get_data_avail_info(DataAvailable[] stats_array);

JNI代码

JNIEXPORT jint JNICALL Java_demo_JNIWrapper_pax_1store_1get_1data_1avail_1info
  (JNIEnv *env, jclass jclass1, jobjectArray jobj){

jclass dataClass=(*env)->FindClass(env,"demo/DataAvailable");//Get the java class 

for(i=0;i< 2;i++)
    {
                jobject j=(*env)->GetObjectArrayElement(env,jobj,i);
jmethodID meth=(*env)->GetMethodID(env,dataClass,"setTimeStamp","(Ljava/lang/String;)V");//this gets the method id present in the class 


               if(meth==NULL){
                printf("Method set is null");
                }

jstring x =  (*env)->NewStringUTF(env,"2013-12");
        (*env)->CallObjectMethod(env,j,meth,x);//This is where I get Null Pointer

}

 (*env)->DeleteLocalRef(env, dataClass);

return 0;

}

正如@Alex Cohn 和@immbis 所建议的那样,传递给 JNI 的数组未被填充,因此得到一个空指针

感谢 Alex Cohn 和 immbis 的建议。