JNI返回的jobject不是设置字段

时间:2013-05-27 18:28:23

标签: java java-native-interface

我使用JNI设置一些字段如下:

JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
jclass complexClass = (*env)->GetObjectClass(env, thisObj);
jfieldID fid = (*env)->GetFieldID(env, complexClass, "exampleVar", "I");
jint secondnumber = 30;
(*env)->SetIntField(env, complexClass, fid, secondnumber);
}

但是在设置了int字段后,当我读回第一个调用的地方时,该值不会被修改。我尝试提供setter以及将“exampleVar”字段公开,但这似乎没有帮助。

1 个答案:

答案 0 :(得分:2)

如果它是非静态字段,则需要将对象提供给SetIntField(),而不是类。

您没有错误检查隐藏了这一点。