JNI遇到error: request for member 'FindClass' in something not a structure or union
2015-03-25 13:52
519 查看
error: request for member 'FindClass' in something not a structure or union
可能的问题是:
如果是c程序,要用 (*env)->
如果是C++要用 env->
ps:在linux下如果.c文件中用 “env->” 编译会找不到此结构,必须用“(*env)->”,或者改成.cpp文件,以 c++的方式来编译。
以下是两者的区别:
jni.h中
struct JNINativeInterface_;
struct JNIEnv_;
#ifdef __cplusplus
typedef JNIEnv_ JNIEnv;
#else
typedef const struct JNINativeInterface_ *JNIEnv;
#endif
/*
* We use inlined functions for C++ so that programmers can write:
*
* env->FindClass("java/lang/String")
*
* in C++ rather than:
*
* (*env)->FindClass(env, "java/lang/String")
*
* in C.
*/
即C++中使用
env->FindClass("java/lang/String")
C中使用
(*env)->FindClass(env, "java/lang/String")
同理,ReleaseStringUTFChars函数也有可能出现这样的问题。
come from:http://blog.csdn.net/bailyzheng/article/details/8690538
可能的问题是:
如果是c程序,要用 (*env)->
如果是C++要用 env->
ps:在linux下如果.c文件中用 “env->” 编译会找不到此结构,必须用“(*env)->”,或者改成.cpp文件,以 c++的方式来编译。
以下是两者的区别:
jni.h中
struct JNINativeInterface_;
struct JNIEnv_;
#ifdef __cplusplus
typedef JNIEnv_ JNIEnv;
#else
typedef const struct JNINativeInterface_ *JNIEnv;
#endif
/*
* We use inlined functions for C++ so that programmers can write:
*
* env->FindClass("java/lang/String")
*
* in C++ rather than:
*
* (*env)->FindClass(env, "java/lang/String")
*
* in C.
*/
即C++中使用
env->FindClass("java/lang/String")
C中使用
(*env)->FindClass(env, "java/lang/String")
同理,ReleaseStringUTFChars函数也有可能出现这样的问题。
come from:http://blog.csdn.net/bailyzheng/article/details/8690538
相关文章推荐
- JNI遇到error: request for member 'FindClass' in something not a structure or union
- JNI遇到error: request for member 'FindClass' in something not a structure or union
- JNI遇到error: request for member 'FindClass' in something not a structure or union
- JNI遇到error: request for member 'FindClass' in something not a structure or union
- Jni使用过程中出现 error: request for member 'FindClass' in something not a structure or union,解决办法
- error: request for member 'FindClass' in something not a structure or union
- error: request for member 'nameLabel' in something not a structure or union 的原因
- JNI_OnLoad编译错误:request for member 'GetEnv' in something not a structure or union
- error: request for member ‘on_url’ in something not a structure or union
- JNI_OnLoad编译错误:request for member 'GetEnv' in something not a structure or union
- request for member 'flags' in something not a structure or union
- C语言程序编译错误 request for member 'num' in something not a structure or union
- C语言实现顺序线性表及request for member''in something not a structure or union
- C 语言编译时报错 request for member''in something not a structure or union
- android JNI之 'GetObjectClass' in something not a structure or union
- 编译报request for member '***' in something not a structure or union的原因,以及解决方法
- error: request for member ‘***’ in ‘***’, which is of non-class type ‘***’
- 关于JNI配置Error: Could not find class file for 'XXX'问题(MAC Andriod Studio)
- error: request for member '*' in '*', which is of non-class type '*'
- 解决:ould not find a getter for porDate in class com.bc.bean.PortalSheet Caused by: org.hibernate.PropertyNotFoundException: Could