以下代码显示了我的方法的结构,该方法位于'Test'类中,我需要访问我的布尔变量'test_var'的值。
public Decision declare(){
class Decide extends Decision{
public boolean test_var = false;
}
final Decide d = new Decide();
d.Add(new Rule("decision")){
public void take(){
d.test_var = true;
}
});
return d;
}
我在JNI中尝试了以下内容,但是在尝试通过GetObjectField查找布尔值时,android应用程序崩溃了。
jclass decision_class = (*env)->FindClass(env, "Test$1Decision");
jfieldID varID = (*env)->GetFieldID(env, decision_class, "test_var", "Z");
if(NULL == varID) log("varID not found\n")
else log("varID was found!!!\n")
//jboolean result = (*env)->GetBooleanField(env, obj, varID);
jboolean result = (*env)->GetObjectField(env, obj, varID);
log("In C the boolean value is:", result)
我是否以错误的方式访问该字段?任何建议都非常感谢。提前致谢。