AndroidNDK初步开发之安装eclipse插件支持jni开发(一)
来源:互联网 发布:宠物养成页游 源码 编辑:程序博客网 时间:2024/05/21 20:27
因为初次使用AndroidNDK开发,而且使用的是Google近乎遗弃的Eclipse,去jni开发,实在是一件实为苦恼的事,花了我2天的时间~下面把我会分2节来“完美”的说明使用eclipse进行jni开发的步骤。
首先当然是安装NDK,这里要说明一下,以前的版本还在用cygwin,当时我接触过android-ndk-r5c版本的NDK,当时我尝试了下这一版本的使用,结果发现要想自己写jni,还最好是用eclipse(如果你是大牛可以略过,反正我不是)。随后,下载了新版android-ndk-r10e的NDK,其实是相当简单,但百度了很多好多总结的都不太完善,我的步骤如下:
一、老版本使用cygwin开发ndk的相关配置:
(1)进入cygwin/home/用户目录/.bash_profile,添加如下语句:
NDKROOT=/cygdrive/E/ndk/android-ndk-r5cexport NDKROOTexport PATH="$PATH":"$NDKROOT"
(2)复制.bash_profile到C盘的用户目录下,再打开cygwin
(3)打开cygwin就是模拟的Linux界面了,可以输入Linux语句,输入cd $NDKROOT如果出现刚刚配置的目录说明配置NDK成功。
(4)如果想编译jni文件,则需进入到项目的jni目录下,输入命令:$NDKROOT/ndk-build就可以将.so文件导入到项目的libs里。
二、新版本NDK的eclipse配置:
1、配置Eclipse与NDK关联:Preferences->Android->NDK->选择NDK解压路径(如:D:\ndk\android-ndk-r10e)
2、针对项目配置NDK环境:项目右键->Preferences->这里需要修改3个东西,如下:
(1)Builders中:New->Program->填写Builders名字、ndk-build.cmd路径、jni路径->OK
(2)C/C++ Build:
①取消选择Use default build command并在Build command中输入${NDKROOT}/ndk-build.cmd。
②C/C++ Build->Environment->Add->名字:变量名:NDKROOT和NDK路径(如:D:\ndk\android-ndk-r10e)
(3)C/C++ General->Paths and Symbols->Add->NDK目录下的C库路径(如:D:/ndk/android-ndk-r10e/platforms/android-17/arch-arm/usr/include):
完成这3项点击OK,到这里就可以编写jni代码了。
3、附加一点,如果你打开eclipse会有这个错误”Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program cygpath
“,那不用着急,只要在计算机右键属性->高级系统变量->配置环境变量->Path里添加cygwin的bin目录路径即可(如:E:\ndk\cygwin\bin;),不管是用户变量的Path还是系统变量的Path均可,但如果是用户变量的Path一定要加上%PATH%;,它表示一并把全局中Path里的参数带到用户变量里来。
三、最后关于Android调用jni生成.so文件的问题请看下节
- AndroidNDK初步开发之安装eclipse插件支持jni开发(一)
- androidNDK开发之JNI学习
- AndroidNDK初步开发之如何调用jni生成.so文件、Android.mk配置及第三方so不被删除的方法(二)
- AndroidNDK开发之“文件操作”
- AndroidNDK开发之“文件操作”
- AndroidNDK开发之“文件操作”
- AndroidNDK开发之“文件操作”
- AndroidNDK开发之“文件操作”
- Ubuntu开发之旅一---安装初步
- Eclipse插件开发(一)
- eclipse插件开发(一)
- eclipse插件开发(一)
- Eclipse开发J2ME程序之插件安装
- Eclipse开发J2ME程序之插件安装
- Eclipse开发J2ME程序之插件安装
- 开发环境搭建之 安装Eclipse 插件
- Android NDK开发之配置 adb-bundle、eclipse 支持C/C++ 语言的JNI开发
- AndroidNDK开发日记
- 堆和栈的区别,顺便介绍一下:全局区(静态区)、文字常量区、程序代码区
- Spring分布式事务- 三种实现方式(Spring+JTA)
- 彻底删除mysql-尤其是最后最后一步出现问题
- Android UI界面之FrameLayout(了解)
- Android Studio——Android Bitmap开发之旅--基本操作
- AndroidNDK初步开发之安装eclipse插件支持jni开发(一)
- [图]深搜判断图的连通性
- 初识Java
- 计算传入时间距今多少天/时/分/秒
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)
- oracle数据库中有clob字段表结构数据的分组查询
- C#Socket 文件传输,支持断点续传
- BufferedInputStream
- socket阻塞与非阻塞,同步与异步、I/O模型