gpt4 book ai didi

java - NullPointerException 尝试从 JNI 填充数组

转载 作者:行者123 更新时间:2023-11-30 17:02:14 25 4
gpt4 key购买 nike

当我从 JNI 调用 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 的建议。

关于java - NullPointerException 尝试从 JNI 填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36637109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com