我使用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”字段公开,但这似乎没有帮助。
答案 0 :(得分:2)
如果它是非静态字段,则需要将对象提供给SetIntField()
,而不是类。
您没有错误检查隐藏了这一点。