Android NDK 环境搭建及配置
1、下载必须软件(默认你装了Eclipse)
cygwin-->cygwin下载地址
android-ndk-->ndk下载地址
2、接下来进行cygwin的安装,之前在网上帖子里也有很多,但有些问题再次纠正
2.1、 双击运行,运行后你将看到安装向导界面:
2.2、 点击下一步
此时让你选择安装方式:
1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。
2.3、选择第一项,然后点击下一步:
最好不要放到有中文和空格的目录里(切记不要中文路径),似乎会造成安装出问题,其它选项不用变,之后点下一步:
2.5、上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目录,直接点下一步就可以:
2.6、此时你共有三种连接方式选择:
1) Direct Connection:直接连接。
2) Use IE5 Settings:使用IE的连接参数设置进行连接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。
用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,
2.7、 这是选择要下载的站点,我用的是163的,速度感觉还挺快,选择后点下一步
2.8、 此时会下载加载安装包列表
View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:有的帖子里说12个包,但问我安装的时候好多找不到,后来发现那些找不到的没有影响可以放心安装(autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包,我安装的是没有删除线的)
2.10、 然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号(这里好奇怪,选中竟是x),而Src项是源码,这个就没必要选了。
2.11、安装完成后可以再cygwin的命令行中测一下是否安装及配置成功:
cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
2) gcc --version 查看gcc是否安装成功(同上,g++ --version、gdb --version),如果现实了版本信息,说明成功了。
3、 打开cygwin安装目录/home/<电脑用户名>/.bash_profile文件,添加NDK=/cygdrive/<你的盘符>/<android ndk 目录>例如:NDK=/cygdrive/d/android-ndk-r9c export NDK(这里名字可以任选),之后打开cygwin命令行窗口输入cd $NDK回车,如果上方的路径出现了你配置的/cygdrive/d/android-ndk-r9c,说明成功了。
接下来你就可以用cygwin变异jni程序了,可以找ndk自带的hello-jni做测试:
cd cygdrive/d/android-ndk-r9c/samples/hello-jni
$NDK/ndk-build(如果这里你添加了ndk到环境变量中去的话,直接ndk-build就可以了)
但我的遇到了问题:
/usr/bin/gawk.exe error loading shared libraries: ? :can't find such file or direcries
......
我按照这个帖子上给出的方法(错误检测方法)发现的确是少了一个dll动态库文件,没办法只能更新cygwin,这里的更新其实就是重装,不过你之前装过的会保留,下载需要的库。我需要的是 cyggcc_s-seh-1.dll这个库,正好在(库说明)这里看到它是属于哪个lib的,然后更新时再选择装上,之后可以成功编译了。
ndk-build成功生成了.so,在Eclipse上运行,模拟器上成功显示了“Hello from JNI! Compiled with ABI x86 ”
本来不想再修改的,但是........
自己按照网络上已有的帖子实践过,经过亲测发现,配置了cygwin就不用在Eclipse上下载CDT插件了,不知道网上已有的那些帖子的作者到底自己试过没有,坑啊.................
1、选择相应工程,右键选择“properties”-->Builder
2、配置
refresh配置
build option配置
OK 完成
2、接下来是在新建Builder的界面,就是第一张图,把新建的up到最上边,这样每次保存更改或者clean Eclipse都会自动帮你生成so库了。