Android 新版NDK环境搭建(免Cygwin)
2016-05-06 17:02
507 查看
使用最新ndk,直接抛弃cygwin,以前做Android的项目要用到NDK就必须要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量,特别麻烦,新版就不需要了。 (软件下载百度云链接:http://pan.baidu.com/s/1nt9g7zz 密码:50m4)
setp1:将下载下来的“android-ndk-r10c-windows-x86.exe”双击安装,安装完成后出现android-ndk-r10d文件夹,该文件夹为NDK的根目录。
![](https://images0.cnblogs.com/blog/657308/201501/211004380163778.png)
其中 samples中为NDK提供的实例。
![](https://images0.cnblogs.com/blog/657308/201501/211006071886387.png)
setp 2: 启动"eclipse.exe"
选择菜单栏上的[Window->Perferences->Android->NDK]设置 NDK Loaction 为E:\Android\android-ndk-r10d;
我的电脑 添加环境变量 NDK_ROOT 为: E:\Android\android-ndk-r10d
在环境变量 PATH 下追加 :%NDK_ROOT%;
step 3:添加测试项目hello-jni
将ndk下samples目录下hello-jni项目导入
![](http://img.blog.csdn.net/20131008223426906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
项目导入之后,添加编译器,选择项目,右击properties(NDK_builder我事先做好的,这里我们要new一个新的)
![](http://img.blog.csdn.net/20131008224005984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
选择program
![](http://img.blog.csdn.net/20131008224102734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
下面按图设置好
![](http://img.blog.csdn.net/20131008224126531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131008224148390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131008224203750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
勾选项目
![](http://img.blog.csdn.net/20131008224254843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
将编译器up到最先位置
![](http://img.blog.csdn.net/20131008224341750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWx3YXlzNDMyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
step 4:完成了,然后运行。运行之前先编译NDK,然后在编译JAVA代码。编译也许会遇到Unable to launch cygpath. Is Cygwin on the path?错误,解决办法如下:
1.工程右键,点Properties->C/C++ Build的Building Settings中去掉Use default build command,然后输入${NDKROOT}/ndk-build.cmd
![](http://www.th7.cn/d/file/p/2014/04/15/0cd6d43d028324c28bfe1328b06dd189.png)
2.在C/C++ Build中点击Environment,点Add...添加环境变量NDKROOT,值为NDK的根目录
![](http://www.th7.cn/d/file/p/2014/04/15/da87f6326532a06054d6b6b6d5376901.png)
3、android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni...
今天在编译android NDK工程的时候,在jni文件夹下的cpp文件中报了一大堆错误,诸如:Unresolved inclusion: <jni.h>、Type 'jint' could not be resolved、Type 'jintArray' could not be resolved等,根据经验,这样的错误肯定是没有包含相应的头文件导致的。
解决方案:
选中工程,右键->Properties,点击C/C++ General展开,点击 Path and Symbols,在右边Includes下,点击Add,把NDK文件夹下的jni头文件和相应的C++头文件添加进来。一定要填写完整的路径,比如我添加的两个路径分别是:
E:\AndroidNDK\android-ndk-r10c\toolchains\mipsel-linux-android-4.8\prebuilt\windows-x86_64\lib\gcc\mipsel-linux-android\4.8\include
E:\AndroidNDK\android-ndk-r10c\platforms\android-19\arch-arm\usr\include
大家在自己的NDK文件安装目录下参照我的路径找到相应的include文件夹,添加包含路径,再重新编译,就不会报错了。
4.再编译,问题就解决啦!
setp1:将下载下来的“android-ndk-r10c-windows-x86.exe”双击安装,安装完成后出现android-ndk-r10d文件夹,该文件夹为NDK的根目录。
![](https://images0.cnblogs.com/blog/657308/201501/211004380163778.png)
其中 samples中为NDK提供的实例。
![](https://images0.cnblogs.com/blog/657308/201501/211006071886387.png)
setp 2: 启动"eclipse.exe"
选择菜单栏上的[Window->Perferences->Android->NDK]设置 NDK Loaction 为E:\Android\android-ndk-r10d;
我的电脑 添加环境变量 NDK_ROOT 为: E:\Android\android-ndk-r10d
在环境变量 PATH 下追加 :%NDK_ROOT%;
step 3:添加测试项目hello-jni
将ndk下samples目录下hello-jni项目导入
项目导入之后,添加编译器,选择项目,右击properties(NDK_builder我事先做好的,这里我们要new一个新的)
选择program
下面按图设置好
勾选项目
将编译器up到最先位置
step 4:完成了,然后运行。运行之前先编译NDK,然后在编译JAVA代码。编译也许会遇到Unable to launch cygpath. Is Cygwin on the path?错误,解决办法如下:
1.工程右键,点Properties->C/C++ Build的Building Settings中去掉Use default build command,然后输入${NDKROOT}/ndk-build.cmd
![](http://www.th7.cn/d/file/p/2014/04/15/0cd6d43d028324c28bfe1328b06dd189.png)
2.在C/C++ Build中点击Environment,点Add...添加环境变量NDKROOT,值为NDK的根目录
![](http://www.th7.cn/d/file/p/2014/04/15/da87f6326532a06054d6b6b6d5376901.png)
3、android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni...
今天在编译android NDK工程的时候,在jni文件夹下的cpp文件中报了一大堆错误,诸如:Unresolved inclusion: <jni.h>、Type 'jint' could not be resolved、Type 'jintArray' could not be resolved等,根据经验,这样的错误肯定是没有包含相应的头文件导致的。
解决方案:
选中工程,右键->Properties,点击C/C++ General展开,点击 Path and Symbols,在右边Includes下,点击Add,把NDK文件夹下的jni头文件和相应的C++头文件添加进来。一定要填写完整的路径,比如我添加的两个路径分别是:
E:\AndroidNDK\android-ndk-r10c\toolchains\mipsel-linux-android-4.8\prebuilt\windows-x86_64\lib\gcc\mipsel-linux-android\4.8\include
E:\AndroidNDK\android-ndk-r10c\platforms\android-19\arch-arm\usr\include
大家在自己的NDK文件安装目录下参照我的路径找到相应的include文件夹,添加包含路径,再重新编译,就不会报错了。
4.再编译,问题就解决啦!
相关文章推荐
- ANDROID FRAMENT的切换(解决REPLACE的低效)
- Android进阶之Fragment和Activity之间通过setArguments传递复杂参数
- 最全面的AndroidStudio配置指南总结-包括护眼模式
- android - Bad notification posted - Couldn't expand RemoteViews for: StatusBarNotification
- 关于小米文件管理器的介绍及源码下载
- andorid studio 配置NDK环境
- Android - 文件读写操作 总结
- Android布局
- Android LayoutInflater深度解析 给你带来全新的认识
- Android-获取应用程序列表
- Android ListView单选CheckBox
- Android开发调用第三方邮件应用发送邮件
- 最全面的AndroidStudio配置指南总结-包括护眼模式
- 最全面的AndroidStudio配置指南总结-包括护眼模式
- Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED解决方法
- android 指定角的圆角图片处理
- Android用户界面布局(layouts)
- Android获得GPS坐标
- Android线性布局(Linear Layout)
- Android 快速开发系列 打造万能的ListView GridView 适配器