25 linux ndk 头文件_【Android】NDK Symbol 'NULL' could not be resolved

在Android NDK开发中,遇到了这个奇怪的问题

“Symbol 'NULL' could not be resolved”

如下图所示:

先看看我的JNI工程属性,里面有两个包含目录

首先,需要说明一点

NULL是在stddef.h头文件里面声明的

但是,当我打开工程时,发现stddef.h根本就没有声明NULL

原因是,它用了STLPort的stddef.h

路径:android-ndk-r10d\sources\cxx-stl\stlport\stlport\stddef.h

打开NDK的根目录,搜索stddef.h文件,你会发现,有很多个stddef.h,如下图所示

其中有些是包含了NULL声明的,比如

路径 :

android-ndk-r10d\platforms\android-3\arch-arm\usr\include\linux

路径 :

android-ndk-r10d\platforms\android-4\arch-arm\usr\include\linux

路径 :

android-ndk-r10d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\lib\gcc\arm-linux-androideabi\4.9\include

…………

所以,接下来的事情就很简单了,

只要在工程属性中,添加以上其中一个可用的包含目录就可以了

如下图所示,注意顺序哦!!!

当然,有时候遇到“size_t”无法被识别,其它也是一样的道理。

size_t是在stddef.h头文件里面声明的

附上,我正在使用的配置:

E:\Developer\android-ndk-r10d\platforms\android-19\arch-arm\usr\include

E:\Developer\android-ndk-r10d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\lib\gcc\arm-linux-androideabi\4.9\include

E:\Developer\android-ndk-r10d\sources\cxx-stl\system\include

E:\Developer\android-ndk-r10d\sources\cxx-stl\stlport\stlport

如果引入了头文件,还是不能解决问题,那么,应该就是工程出问题了~

一般是这样解决的,

1、先Close Project,退出Eclipse

2、把工程目录下的.cproject文件删除掉

3、再把.project文件里面关于“adt”和“cdt”项删除掉

4、重新打开Eclipse,Open Project

5、右击工程,“Android Tools”->“Add Native

Support”

然后,OK了~

接着

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值