Eclipse+NDK+adt+cdt开发环境问题解决
2015-09-24 16:09
537 查看
概述
本文描述了在Eclipse环境下进行NDK开发时遇到的问题及相关解决方法。问题列表:
*
Unresolved inclusion: <jni.h>或
Unresolved inclusion: <vector>等
*
memcpy的
Invalid arguments问题
这几个问题不影响程序的编译,但会导致无法在Eclipse中进行运行程序等操作。
开发环境
Windows XPEclispe Luna
cdt-8.6.0
adt-23.0.4
android-ndk-r10e
android-sdk_r23.0.2-windows
注:解决问题前请确保项目无误,可使用
ndk-build编译。且Eclipse SDK、NDK路径已配置完毕
Unresolved inclusion
问题
错误描述
项目添加NDK支持后,项目中包含的平台相关头文件及
std库头文件等均出现
Unresolved inclusion提示。
使用
ndk-build命令进行编译并没有错误提示。
问题解决
清除旧的NDK配置
关闭Eclispe,删除项目目录下的.cporject文件。
修改
.project文件,删除包含’cdt’的配置段。
<buildCommand> <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> <triggers>clean,full,incremental,</triggers> <arguments> </arguments> </buildCommand>
<buildCommand> <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> <triggers>full,incremental,</triggers> <arguments> </arguments> </buildCommand>
<nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
注:若尚未添加NDK支持,可忽略此步骤
重新添加NDK支持
项目右键Android Tools -> Add Native Support...
添加NDK库相关路径
在菜单栏Project -> Propertis中,
C/C++ General -> Paths and Symbols下,
Include标签页下,添加如下路径。
$NDK_PATH\platforms\android-19\arch-arm\usr\include $NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\include $NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include
注:此时,
Unresolved inclusion提示应已经消失,但仍存在
Symbol 'string' could not be resolved之类提示。
重建C/C++索引
菜单栏Project -> C/C++ Index -> Rebuld。
至此,
Resolve相关问题全部解决完毕。
注:网上部分教程未提到添加
$NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include,不添加此路径无法解决
Symbol 'string' could not be resolved问题。
Invalid arguments
问题
错误描述
调用memcpy、
vector.resize()等函数时,Eclipse提示
Invalid arguments ' Candidates are: void resize(?) void resize(?, const float &) '
临时解决方案
Project -> Propertis中,修改
C/C++ General -> Code Analysis配置,将
Invalid arguments项由
Error修改为
Warning。
尽管该方法会解决我们的问题,但会导致真正的
Invalid arguments错误也会被忽略。
注:网络上有人提到在
C/C++ General -> Preprocessor...中,修改’Provicer’页签下的配置,勾选
CDT GCC Built-in Complier Settings[Shared]选项,但我测试并没有解决该问题。
参考资料
Eclipse giving me Invalid arguments ’ Candidates are: void * memset(void *, int, ?) ’ though I know the args are goodUnresolved inclusion error while using NDK
解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
Code analysis “Invalid Argument” reports invalid argument which is valid
相关文章推荐
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- java 使用simpleDateFormat格式化日期 时间
- java获得一个目录下的所有文件,和固定后缀的文件
- JAVA线程全局异常处理
- Java基础知识强化61:经典查找之二分查找使用注意事项
- eclipse远程调试
- Java中基本数据类型和引用数据类型
- struts2中constant参数设置
- java获取新浪天气预报代码
- J2ee开发环境搭建之(四)eclipse集成Maven
- Java线程的状态
- JDK中的位操作
- eclipse android项目关联android-support-v4包
- java web总结(jdbc连接数据库)
- JAVA 反射
- Java输入输出流
- Java基础知识强化60:经典查找之二分查找
- java 执行js
- java 关于xml的注解,自动生成xml文件 - @XML
- Java自定义异常在项目中的应用