编译错误提示:
/home/miyuehu/work/WebJsTest/jni/jnitest.c:22: error: request for member ‘GetObjectClass’ in something not a structure or union
/home/miyuehu/work/WebJsTest/jni/jnitest.c:23: error: request for member ‘GetFieldID’ in something not a structure or union
注意:jni.h头文件中对于.c & .cpp采用不同的定义
jclass (JNICALL *GetObjectClass) (JNIEnv *env, jobject obj);
jclass GetObjectClass(jobject obj) {
return functions->GetObjectClass(this,obj);
}
对于*.c
jclass test_class = (*env)->GetObjectClass(env, obj);
jfieldID id_num = (*env)->GetFieldID(env, test_class, “num”, “I”);
对于 *.cpp
jclass test_class = env->GetObjectClass(obj);
jfieldID id_num = env->GetFieldID(test_class, “num”, “I”);
本文详细解析了在JNI环境中遇到的编译错误,特别是针对'GetObjectClass'和'GetFieldID'在不同类型的文件(.c和.cpp)中的正确调用方式。通过对比两种不同文件类型中的实例代码,本文旨在帮助开发者理解并避免此类常见错误。
4790

被折叠的 条评论
为什么被折叠?



