eclipse里配置Android ndk环境,用eclipse编译.so文件
做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译。
编译c代码有两种方法:
一、写好c代码后,然后用cygwin搭建ndk-build环境,用ndk-build来编译出相关的.so文件(libs目录)之后,
再用eclipse里去编译java程序,从而使用.so文件。该方法在上一篇搭建NDK环境有介绍。
二、利用eclipse完全可以达到编译.so的目的。
首先,先装上CDT吧,这是Eclipse的C/C++环境插件,装上它后你就可以在Eclipse里创建C/C++项目和代码文件了。插件的安装有两种方式,一种是在线安装,一种是下载安装包自己安装,这里只介绍第一种方式,另一种方式可自行百度。首先登录http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址,如下图所示:,找到对应你Eclipse版本的CDT插件的在线安装地址,如下图所示:
2、找到对应你eclipse版本的CDT插件地址,之后打开Eclipse,点Help菜单,找到Install New Software菜单,注意一些老版本的Eclipse菜单不太一样,比如说Europa的版本,就是Help--Software Updates—Find and Install--Search for new features to install--New Remote Site,除了菜单不太一样外,安装方式都差不多,可自行百度一下,下图以Indigo版本为准:
3、把取的地址填进去,出来插件列表后,选Select All,如下图所示:
然后狂点下一步即可完成安装。
也可以点击Add按钮用离线方法安装。出现该对话框,点击Archive按钮,选择之前下载的离线安装包,安装过程同在线安装。
4、安装完成后,点菜单File-New-Project,出现新建项目界面,如果出现了C/C++项目,那么恭喜你,CDT安装也完成了,如下图所示:
5、 不过光有CDT还不行,CDT编译代码还是需要调用cygwin当中的编译工具进行,所以我们还需要手动配置C/C++的编译器,还是以NDK自带的hello-jni为例子,首先打开Eclipse,File->New->Project->Android->Android project->next,在New Android Project选项卡中,选Create project from existing source;在Location:按Browse找到NDK自带的Hello-jni目录。
选择Android SDK版本后,点击Finish,完成导入。
6、 把这个项目导入进来,导入后如下图所示:
7、 编译C文件:
右键单击HelloJni之后,点击Properties,弹出配置界面,之后再点击Builders,如下图所示:
点击New按钮,新添加一个编译器,点击后出现添加界面,选择Program,点击OK:
8、 点击OK后,出现了添加界面:
在Main Tab界面, 填充以下内容:
Name:
编译器名称,随便填写。如:NDK_Builder
Location:
可执行工具的位置。即NDK安装目录下ndk-build.cmd的位置。
你可以点击Browser File System...按钮选择Android NDK安装目录下的ndk-build.cmd文件来指定Location。如下图:
你也可以设置一个变量来指定Android NDK的安装目录后设置Location。点击Variables按钮指定。如下图:
出现选择Variable的选择框。
单击Edit Variables...按钮。出现Variable管理的界面。单击New按钮添加Variable。
输入Variable的名称,如:ndk_home。然后单击Browse...按钮,选择Android NDK的安装目录后,单击OK。
至此,NDK的Variable设置完成。
然后,单击Main Tab界面上Location的Variables...按钮,选择刚才设置的ndk_home变量。如下图:
单击OK后,在Location的编辑框里会有选择的ndk-home变量,在其后面添加上/ndk-build.cmd,OK,Location设置完成。
如下图:
Working Directory:
要编译的C/C++程序的工作目录。一般指定到jni文件夹,因为所有的C/C++程序都在该文件夹内实现。
首先选择Working Directory里的Browse Workspace...按钮,如下图:
然后,选择要编译的项目HelloJni的jni文件夹。
9、 接着切换到Refresh选项卡,给Refresh resources upon completion打上钩,选择The Project containing the selected resource项,
表示只更新包含选中资源的项目,选中的资源项就是Main Tab选择的jni文件夹。
完成后如下图:
10、 最后切换到Build Options选项卡,勾选During auto builds,如下图所示:
Specify Resources 按钮单击后,选择HelloJni项目的 jni 文件夹。
11、单击 Apply OK 确认设置后,确保此 NDK 构建工具设置为列表中的第一个条目,方法是选择 Up 按钮,直到其位于 Builders 列表的顶部
记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改,排到第一位后如下图所示:
12、 现在再次恭喜你,编译配置也配置完成啦,那么来试试看是否可以自动编译吧,打开左侧jni目录里的hello-jni.c文件把提示Hello from JNI!改改,如下图所示:
单击项目,选择Build Project后,在HelloJni项目下会多出libs文件夹,.so文件就存放在这里。
另外在Console控制台会输出成功编译的提示信息。
编译之后点击run按钮跑起来看看吧,如果模拟器当中出现了你新修改的提示信息,那么再一次恭喜你,已经全部配置成功了!
========================================================================
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file:
我的报错信息如下:
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: D:\Android\workspace/jni/Android.mk
D:/Android/adt-bundle-windows-x86_64-20130917/android-ndk-r9/build/core/add-application.mk:176: *** Android NDK: Aborting... . Stop.
很明显,是路径找不到的问题;
一般情况,因为添加Builder时,我们指定的WorkDirctory为workspace所在的路径,这时候Environment中的NDK_PROJECT_PATH也会默认为这个值,只要修改NDK_PROJECT_PATH,是其值指向具体的工作空间下的项目;
如果能出现这个问题,建议先使用进入cmd,然后使用命令行的方式cd 到你的workspace/yourproject;然后运行ndk-build命令;成功的话会输出以下信息:
这种情况说明系统的环境变量配置是没有问题的,只是eclipse的环境变量配置有问题;解决如下:
1.选中要编译的项目->Properties->Builders; 选中自己为NDK配置的那个Builder,我的叫NDKBuilder;然后选中,Edit,选择Environment选择项卡;加一项NDK_PROJECT_PATH, 值为 你的workspace下的project所在的路径:
eclipse里配置Android ndk环境,用eclipse编译.so文件的更多相关文章
- 在eclipse里配置Android ndk环境 适用于windows mac 和linux(转)
在eclipse里配置Android ndk环境 适用于windows mac 和linux(转) 2012-02-27 13:02:16| 分类: android | 标签:java prog ...
- 在eclipse中配置android ndk的自动编译环境builders
无论linux还是mac在jni目录中直接运行 ndk-build 就可以生成 lib目录及所需要的 so文件: windows 装上lnx模拟器也是一样: 每次修改完 c++代码, 都要运行一下 ...
- 在Eclipse下搭建Android开发环境教程
我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...
- Android NDK环境配置
之前做了一个基于ffmpeg的软解播放器,熟悉了NDK开发的配置环境过程,但是由于太忙一直没有时间写笔记. 首先,介绍一下在这里所参与协作的软件包: 1. JDK: 这个软件被Eclipse依赖. 2 ...
- 【转】在Eclipse下搭建Android开发环境教程
本文将全程演示Android开发环境的搭建过程,无需配置环境变量.所有软件都是写该文章时最新版本,希望大家喜欢. 一 相关下载 三 Eclipse配置 (1)Java JDK下载 1 安装andr ...
- Android开发:修改eclipse里的Android虚拟机路径
一.发现问题: 今天打开电脑发现C盘缩了不少,这才意识到:eclipse里配置的安卓虚拟机默认放在了C盘里. 当然,在不同的电脑上可能路径有所不同,我的默认路径是:C:\Users\lenovo\.a ...
- eclipse中配置c++开发环境 Eclipse + CDT + MinGW
转自eclipse中配置c++开发环境 Eclipse + CDT + MinGW 基本框架:Eclipse + CDT + MinGW 背景知识: CDT:CDT 是完全用 Java 实现的开放源码 ...
- 如何在Eclipse中配置python开发环境
考虑到网上关于Eclipse中配置Python开发环境的文章千篇一律,故写此文以总结. 本文主要内容是:三种Pydev配置方法和一种PyDev卸载方法. 本文的前提是你已经安装了Eclipse和pyt ...
- Windows XP环境下 搭建Android NDK环境
搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygw ...
随机推荐
- WEB网站测试心得整理
一.输入框: 1.正常的字母/文字/数字(正常流程的测试): 2.重复提交(输入内容后,重复点击提交按钮): 3.纯异常字符/正常输入夹杂异常字符(!@#¥%……&**等等): 4.长度限制( ...
- Java应用基础微专业-设计篇
第1章--抽象与接口 1.1 抽象 An abstract class can be created without abstract methods, the purpose of doing th ...
- Python全栈 MongoDB 数据库(Mongo、 正则基础、一篇通)
终端命令: 在线安装: sudo apt-get install mongodb 默认安装路径 : /var/lib/mong ...
- 【RandomString】- 随机字符串
RandomString 随机字符串的用法
- Executor Framework
Why? look at the following 2 pieces of code for implementing a simple web server based on socket, ca ...
- Bad Cowtractors(最大生成树)
Description Bessie has been hired to build a cheap internet network among Farmer John's N (2 <= ...
- mysql 只返回一条数据
问题描述: 需要得到时间最近的一条记录,但是按照时间字段排完序之后,得到的是全部. 解决办法: order by createtime desc //降序:asc:升序 LIMIT 1
- zookeeper启动配置
zookeeper安装和配置详解 转载 2014年04月16日 14:36:31 16812 摘自:http://www.ibm.com/developerworks/cn/opensource/os ...
- java连接数据库的两种方法总结
方法一:使用jdbc-odbc桥连接sql server,作为中间媒介连接数据库 1.配置数据源:打开控制面版->管理工具->数据源(ODBC)->选用户DSN,按下添加按钮-> ...
- 【Linux】- CentOS查看IP
1.查询命令: ip addr 显示如图: 可以看到ens33没有inet这个属性,那么就没办法通过IP远程连接. 2.设置配置文件: vi /etc/sysconfig/network-script ...