Android NDK 获取域和域id(访问Java代码变量)

话不多说,直接上代码

NIEXPORT jstring JNICALL Java_androids_ndk_com_myapplication_Main3Activity_executeJavaFiled(JNIEnv *env,jobject instance){

jclass clazz;

//用对象引用获得类

clazz = env ->GetObjectClass(instance);

//获取实例域的域ID

jfieldID instanceFieldId;

instanceFieldId = env ->GetFieldID(clazz,"instanceField","Ljava/lang/String;");

//获取静态域的域ID

jfieldID staticFieldId;

staticFieldId = env ->GetStaticFieldID(clazz,"staticField","Ljava/lang/String");

//获取实例域

jstring instanceField;

instanceField = (jstring)env ->GetObjectField(instance,instanceFieldId);

//获取静态域

jstring staticField;

staticField = (jstring)env ->GetStaticObjectField(clazz,staticFieldId);

returninstanceField;

}

代码片段截图:

Android NDK 获取域和域id(访问Java代码变量)_第1张图片

你可能感兴趣的:(Android NDK 获取域和域id(访问Java代码变量))