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

1 致谢

感谢初道网友(估计是这个名字吧 不过也有可能是转载的 我还是由衷地表达一下谢意)

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 测试

测试成功


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值