Android NDK开发method GetStringUTFChars’could not be resolved
2016-04-15 12:56
525 查看
相信很多ndk开发的同人都遇到过这样的问题,下面说说我总结的解决方案,以备后用。
第一步:右键工程 property->C/C++ General->CodeAnalysis—>配置当前工程(或者workspace)->使 method cannot be resolved 不选中(即此项不进行报错 ),这样就可以编译成功了。
这时候又会报其他错误,base operand of '->' has non-pointer type 'JNIEnv {aka _JNIEnv},这是因为c和c++的编译有区别,我这是在c++中进行编译,所以要把
char* indicator_daemon_path = (char*)(*env)->GetStringUTFChars(env,
indicatorSelfPath, 0);改为:
const char* indicator_self_path = env->GetStringUTFChars(indicatorSelfPath, 0);
注意有四个地方要进行修改,不要漏了啊。
主要是
JNIEnv *env参数的使用有下面的差别:
所有JNI接口的第一个参数是JNIEnv *env, 在C中,使用方法是
(*env)->NewStringUTF(env,"Hello from JNI!");
但在C++中,其调用方法是
env->NewStringUTF("Hellofrom JNI!");
第一步:右键工程 property->C/C++ General->CodeAnalysis—>配置当前工程(或者workspace)->使 method cannot be resolved 不选中(即此项不进行报错 ),这样就可以编译成功了。
这时候又会报其他错误,base operand of '->' has non-pointer type 'JNIEnv {aka _JNIEnv},这是因为c和c++的编译有区别,我这是在c++中进行编译,所以要把
char* indicator_daemon_path = (char*)(*env)->GetStringUTFChars(env,
indicatorSelfPath, 0);改为:
const char* indicator_self_path = env->GetStringUTFChars(indicatorSelfPath, 0);
注意有四个地方要进行修改,不要漏了啊。
主要是
JNIEnv *env参数的使用有下面的差别:
所有JNI接口的第一个参数是JNIEnv *env, 在C中,使用方法是
(*env)->NewStringUTF(env,"Hello from JNI!");
但在C++中,其调用方法是
env->NewStringUTF("Hellofrom JNI!");
相关文章推荐
- 调试扫描头
- Android应用程序的debug属性
- Android编译过程详解(一)
- Android编译过程详解(一)
- Android四大基本组件之 BroadcastReceiver介绍
- Android四大基本组件之 Service
- Android四大基本组件之 Activity
- Android四大基本组件之 ContentProvider
- android写京东首页
- Android Service中给其他的组件回传数据。
- android studio2.0出现的gradle问题,instant Run即时运行不了.
- android studio2.0出现的gradle问题,instant Run即时运行不了.
- 充分掌握Android Debug Bridge(ADB)
- android EditText 自动获取焦点并弹出软键盘
- Android3.1后系统接收不到广播的问题解析
- android下拉刷新精彩动画
- Android_android签名证书的sha1值获取
- Android编程获取图片和视频缩略图的方法
- android 获取状态栏高度
- Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class