转自:http://blog.csdn.net/yanzi1225627/article/details/16897877

Android开发环境由windows下ADT Bundle搭建,且按前文http://blog.csdn.net/yanzi1225627/article/details/16876311 所示,安好cygwin和CDT,能够运行c或c++的helloworld。NDK我用的android-ndk-r7-windows。

第一种配置方法

参考http://blog.csdn.net/xinzheng_wang/article/details/7416543文中所说,android-ndk-r7-windows往上的版本都集成了cygwin,因此无需再安cygwin。所谓的集成了cygwin就是说,安装包解压后有个ndk-build.cmd命令。配置eclipse直接调这个cmd命令,完成编译。而安装cygwin的话,就是要像在linux下一样,cd到工程文件夹,然后输入ndk-build,完成编译。个人还是倾向于安装cygwin,因为不安的话,没法在eclipse上编译运行调试C/C++程序。年龄大了,不想折腾了。既然eclipse提供了编译C/C++的环境,那就一切在这上面搞吧。

(1)解压缩android-ndk-r7-windows(77.5M),将ndk-build.cmd的路径设置到系统环境变量path里。

(2)接下来是比较关键的。导入ndk解压包里的hello-jni至eclipse,然后右键项目选择属性或直接按快捷键Alter+Enter,点开Builders--new---Program,Name是自己随便起的,这里叫NDK_Builder,下面的Location通过BrowseFileSystem选中ndk-build.cmd就可以了。Working Directory通过BrowseWorkspace选择当前工程就ok。Refresh选项如何想对整个工作空间起 作用就选第一个,如果只对当前项目起作用就选第三个。在Build Options里选上After a “Clean”、During manual builds 、During auto builds及最下面的specify working set of relevant resource,选择当前工程里的jni文件夹,即ndk编译时的源代码和mk文件所在目录。

编译运行时报错:

/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [libs/armeabi/gdbserver] Error 1

这是cygwin的环境变量在Path里放在ndk的后面导致的。http://blog.csdn.net/xinzheng_wang/article/details/7416543此文中的说法有误。 将cygwin的环境变量放在ndk的前面,编译时通过了,app打开时一开就挂。原因是libs文件夹根本就没生成。不得已,在path里讲cygwin的环境变量删除,然后重启eclipse,否则环境变量设置无效。再次运行时可以看到libs正常生成,app运行通过。

      注意:这种方式无需手动输入ndk-build,直接clean后自动编译jni文件夹。系统环境变量Path里不能设置cygwin!

第二种方式:

即不用在eclipse新加一个Builder,不调用ndk-build.cmd,直接在cygwin下手动进到工程目录,然后输入ndk-build。如果提示obj/local/.....***多个目标匹配,停止。

需在工程里将obj文件夹下的东西删除即可。

首先进到cygwin下输入ndk-build命令试下,如果说这个命令未被识别就需要在cygwin里设置下。vi  /etc/profile 然后输入i表这示可以插入,注意在cygwin里,按enter表示下移,而不是光标的下键,可能是笔记本键盘的问题。然后在文件的末尾加上  export NDK=/cygdrive/d/ProgramFile/android-ndk-r7/  注意这里/cygdrive/d/就是表示的d盘,window下是用 \ 而linux下是用 /  真蛋疼。然后按esc键,再按:输入wq,保存后再输入命令:source /etc/profile使刚才的设置生效。完毕后,输入ndk-build命令测试一把,如果能识别ndk-build就说明环境配置好了。如下:

Administrator@yanzi /
$ ndk-build
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
/cygdrive/d/ProgramFile/android-ndk-r7/build/core/build-local.mk:102: *** Android NDK: Aborting    。 停止。

奇怪的是我安装的Cygwin2.774版本,ndk的环境变量只在Path里设置了下,在cygwin里直接就可以识别ndk-build命令了!编译jni成功时显示:

总结:如果只看NDK编译的话,这两种方式是可以共存的。但是考虑到用eclipse来编译C/C++文件,则必须在Path里设置cygwin的bin目录,因此跟第一种使用NDK的方式就冲突了。因此,我推荐使用第二种借助cygwin来使用ndk-build的方式。至此,CDT、NDK、Cygwin搭建方式就完毕了。总结下需要设置以下项:

1、系统环境变量Path添加: D:\ProgramFile\cgwin\bin;D:\ProgramFile\android-ndk-r7;

2、eclipse里添加:

C_INCLUDE_PATH D:\ProgramFile\cgwin\lib\gcc\i686-pc-cygwin\4.7.3\include

CPLUS_INCLUDE_PATH:D:\ProgramFile\cgwin\lib\gcc\i686-pc-cygwin\4.7.3\include\c++;D:\ProgramFile\cgwin\lib\gcc\i686-pc-cygwin\4.7.3\include\c++\backward;D:\ProgramFile\cgwin\lib\gcc\i686-pc-cygwin\4.7.3\include

3,如果cygwin进去后找不到ndk-build,需要在/etc/profile里设置NDK环境变量,之后source以下。

4,系统环境变量里的胚胎选项:LIBRARY_PATH   D:\ProgramFile\cgwin\lib  这一项我没设,调试C C++程序时暂未发现任何异常。

Windos下Android(ADT Bundle)配置NDK的两种方法------ADT、Cygwin、NDK配置汇总(转)的更多相关文章

  1. Android Studio导入Eclipse项目的两种方法

    Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...

  2. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)

    在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...

  3. Android中用GridView实现九宫格的两种方法(转)

    Android中用GridView实现九宫格的两种方法http://blog.csdn.net/shakespeare001/article/details/7768455 1.传统办法:实现一个继承 ...

  4. 修改android的wifi客户端名称的两种方法

    修改android的wifi客户端名称的两种方法     手机连接到无线路由时,在dhcp的客户端列表里面是这样的名称"android-89425253e5de3a2",这就是安卓 ...

  5. Android中Intent传递对象的两种方法(Serializable,Parcelable)

    今天要给大家讲一下Android中 Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是 Bundle.putP ...

  6. Android:实现无标题的两种方法

    实现无标题的两种方法:配置xml文件和编写代码设置 1.在AndroidManifest.xml文件中进行配置 实现全屏效果: android:theme="@android:style/T ...

  7. [转]Android中Intent传递对象的两种方法(Serializable,Parcelable)

    http://blog.csdn.net/xyz_lmn/article/details/5908355 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种 ...

  8. Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!

    [转][原文] 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object); ...

  9. 查找linux系统下的端口被占用进程的两种方法 【转】

    在linux下开发时,你的软件可能要使用某一个端口,或者想查找某一个端口是否被占用.需要怎么做呢??这的确是一个比较烦恼的问题,我也此为这个苦恼过.但是通过查找man手册,还是同事的交流.总结出来两种 ...

随机推荐

  1. Flutter FormatException: Bad UTF-8 encoding 0xc3 (at offset 172)

    是文件编码问题. 1,打开 Android Studio 进入设置界面 Ctrl + Alt + S 或 File --> Settings 打开如下界面: 2,将 Project Encode ...

  2. git 代码统计

    查看git上的个人代码提交量: git log --author="Marek Romanowski" --since="2019-01-01" --no-me ...

  3. Win10磁盘利用率高达100%设置修改方法

    Win10磁盘利用率高达100%设置修改方法 Windows Defender关闭 Win10的Windows Defender已经变身成为安全中心,它的运行机制改成了即便是电脑中存在多个杀毒.防护软 ...

  4. Android系统概述

    一.Android的诞生 Android这一词最先出现在法国作家利尔亚当在1886年发表的科幻小说<未来夏娃>中,作者将外表像人类的机器起名为Android,这也就是Android小人名字 ...

  5. jenkins 部署应用

    一,安装rpm包 安装jdk 安装jenkins 查看jdk是否安装成功 启动jenkins systemctl start jenkins 开机自启 systemctl enable jenkins ...

  6. MVC参数自动装配

    在拿到一个类型的所有属性以及字段的描述信息后,就可以通过循环的方式,根据这些数据成员的名字去QueryString,Form,Session,Cookie读取所需的数据了. 就是遍历参数,然后用反射遍 ...

  7. BFC --- Block Formatting Context --- 块级格式化上下文

    虽然知道块级格式化上下文是什么东西,但要我把这个东西给说清楚,还真的不是一件容易的事儿,所以这篇文章我就要说说清楚到底什么使传说中的BFC,即块级格式化上下文. 一.BFC的通俗理解 通俗的理解 -- ...

  8. filter get乱码 全站编码解决 包装模式

    包装模式简介: package com.itheima.test; import java.io.BufferedReader; import java.io.IOException; import ...

  9. UML建模—EA创建Class(类图)

    1.新建类图 2.添加类或接口 在类图可以捕获系统-类-和模型组件的逻辑结构.它是一个静态模型,描述存在什么,有哪些属性和行为,而不管如何去做. 说明关系之间的类和接口; 泛化. 聚合和关联是在分别反 ...

  10. Windows未能启动 由于关键系统驱动程序丢失或损坏 电脑无法开机

    该错误导致系统无法开机,其实也好解决 错误描述: Windows未能启动.原因可能是最近更改了硬盘或软件.解决此问题的步骤…… 1.…… 2.…… 3.…… …… 文件:\windows\system ...