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编写C代码时出现“Unresolved inclusion: ***.h”的解决方案相关推荐

  1. python代码错误有哪些_在编写python代码时,小白最容易犯的十几个错误 !

    原标题:在编写python代码时,小白最容易犯的十几个错误 ! 1).忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 " ...

  2. eclipse中JSP文件编写乱码问题及解决方案

    eclipse中JSP文件编写乱码问题及解决方案 遇到问题 编译JSP文件后,网页中中文显示乱码 开始解决问题 注:若未创建JSP文件项目则只需前三个步骤 若创建了JSP文件项目则还需步骤四! 步骤一 ...

  3. java中怎么判断一段代码时线程安全还是非线程安全_3万字的Java后端面试经历总结

    HashMap源码 "问:HashMap底层原理,为什么线程不安全. hashmap: 数组+ 链表 + 红黑树 初始长度 = 16 扩容因子 = 0.75 索引确定: index = ha ...

  4. eclipse中出现双箭头,代码末尾有类似“g”符号

    1.eclipse中编辑代码页面,出现如下情况: 2.找到:window -> Preference -> General -> Editors -> Text Editors ...

  5. VSCode内用markdown写代码时出现很多段落标记的解决方案

    在VSCode内用markdown写代码时,出现很多段落标记如下图所示. 开始以为是代码的问题,粘贴了很多次,不行. 把代码放在记事本里,粘贴过来,不行. 敲一段代码试试,也不行. 看来是文件本身出了 ...

  6. Access中编写VBA代码时,如何区分、使用“.”和“!”

    目录 1. 释义一 2. 释义二 3. 释义三 1. 释义一 在 Access 以及其它一些使用 VBA 编程的软件中,点号(.)和叹号(!)的区别是让很多刚接触 VBA 编程不久的新手经常感到困惑的 ...

  7. eclipse中误删除的java文件 代码如何恢复

    误删除文件的恢复 在用eclipse进行代码编写操作时,有时会误删除文件或者文件包.通过eclipse的恢复文件功能可以恢复误删除的文件. 具体步骤为: 1.选择误删除文件在eclipse所在包(文件 ...

  8. java中怎么判断一段代码时线程安全还是非线程安全_Java 中的多线程你只要看这一篇就够了...

    引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...

  9. Eclipse中使用Junit编写测试用例

    Eclipse自带Junit插件,不用安装就能在项目中编写测试用例,非常方便. 在项目中添加Junit库 在编写测试用例之前,需要先引入Junit.对项目根目录右键,选择Properties,Java ...

最新文章

  1. 这8份前沿Paper+Code ,你一定用得上!
  2. 怎么保证缓存和数据库一致性
  3. JSONP的学习(收集整理)
  4. 获得客户端的时区(get client-side time zone by JS)
  5. [END_OBJECT] but found [FIELD_NAME]')
  6. javafx 图片作按钮_JavaFX - 按钮编辑树视图节点文本
  7. .NET Core开源行动:一键创建Excel Add-in
  8. python面向对象基础之类与实例
  9. OpenSsl工具的介绍
  10. makefile中 = ,:=,+=有怎么区别?
  11. TypeScript算法专题 - blog9 - 单链表统计 : 返回指定值在单链表结点中的出现次数
  12. 行内元素多出的空白文本节点的解决方法
  13. SQLite语法与Android数据库操作
  14. Linux下修改Mysql的用户(root)的密码的俩种方法
  15. 为伍兹乳腺X线摄影数据集开发神经网络
  16. 已知两个向量的坐标求夹角的大小_两个向量的夹角怎么算
  17. Chrome卸载重装
  18. 简单实现敏感词过滤功能
  19. html有序列表序号字体大小,css – 对不同字体大小的排序列表编号进行样式化
  20. React报错:The tag demo is unrecognized in this browser.If you meant to render a React component, sta

热门文章

  1. RestTemplate远程接口调用
  2. learning hmm
  3. [Xpand] Error 1 Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
  4. atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 a--g v1 q31.xlsx
  5. [Z]四种浏览器对 clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth 和 scrollWidth 的解释...
  6. 如何删除C++容器中的值
  7. 《设计模式详解》行为型模式 - 中介者模式
  8. 【Vue.js 知识量化】基础语法
  9. Linux操作Oracle(17)——linux oracle启动时 :各种报错 解决方案(2020.07.30更新...)
  10. 机器学习预测港股打新收益