您的位置:首页 > 编程语言 > Java开发

Eclipse中使用JNI编写C代码时出现“Unresolved inclusion: <***.h>”的解决方案

2016-05-07 20:06 453 查看

1 致谢

感谢初道网友(估计是这个名字吧 不过也有可能是转载的 我还是由衷地表达一下谢意)
链接如下:http://www.51testing.com/html/02/n-862402.html

2 问题描述

今天在学习JNI编程时遇到一个问题 编写C代码时
在头文件引入的地方总会出现一个问题“Unresolved inclusion: <***.h>” 最常见的就是“Unresolved inclusion: <jni.h>”
基本上所有通用的头文件都会出现这个错误 从而会导致后面的很多函数调用等等各种错误
其实归根到底 就C语言基本的头文件库都没有都正确的引入
所以我们需要进行一个引入的操作

3 解决方案

以下是我的解决方案 其中参考了上文中的资料
我觉得这种方案还是比较好的 不过其实可以进行简化
大家可以看看作为参考

1 添加系统环境变量

首先是添加系统环境变量 也就是在“系统属性”中
我的定义是
变量名:ANDROID_NDK_HOME
变量值:(NDK根目录)
我的目录是:E:\Path\android-ndk-r10e-windows-x86_64\android-ndk-r10e
最后一个末节点文件夹名是“android-ndk-版本号”

2 添加Eclipse中C/C++环境变量

然后进入Eclipse中进行设置
点击 Windows→Preferences→C/C++→Build→Environmen
这时,如果之前已经在系统环境变量中添加了NDK的根目录,那么点右边的Select即可从系统中选择该变量,选中后点OK

然后的效果如图



之后列表中将出现导入的环境变量 如图



3 添加NDK的C语言通用库

然后进入项目属性设置,将对应的C语言通用库添加进去:

Project→Properties→C/C++ General→Paths and Symbols

然后在Include选项卡中 点击Add



之后就要填入对应的内容 首先点击“Variables...”
然后选择“ANDROID_NDK_HOME” 然后OK



变成这样



之后需要在后面添加由 Android SDK 对应C语言库的路径
Directory:${ANDROID_NDK_HOME}/platforms/android-SDK版本号/arch-arm/usr/include
SDK版本号跟项目的目标SDK版本相对应
SDK版本可以查看project.properties文件的target参数值
project.properties文件就在Android项目的目录中(一般是最后一个文件)



我的Directory的路径是:${ANDROID_NDK_HOME}/platforms/android-19/arch-arm/usr/include
大家可以根据上面的内容自行查找
填好后点击OK



我记得Eclipse应该会提示你“rebuild”之类的 这个选择同意
这样Eclipse才会使用更改后的设置对你的项目重新进行建立 这样才能解决开头出现的问题

3 测试

测试成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Eclipse JNI