0

我使用 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”字段,但这似乎没有帮助。

4

1 回答 1

2

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

您缺乏错误检查掩盖了这一点。

于 2013-05-27T23:12:03.817 回答