在JNI中查找实例变量的值

时间:2015-03-22 17:31:02

标签: java android java-native-interface

以下代码显示了我的方法的结构,该方法位于'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)

我是否以错误的方式访问该字段?任何建议都非常感谢。提前致谢。

0 个答案:

没有答案