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所在的路径:

时间: 2024-08-07 00:15:02

eclipse里配置Android ndk环境,用eclipse编译.so文件的相关文章

在已有的 eclipse 中离线配置 android 开发环境

有两种方法配置 android 开发环境:[注意:本文只介绍离线配置方法] 首先,下载好 ADT ( eclipse 平台下用来开发 android 应用程序的插件) 这里提供一个镜像网站 http://wear.techbrood.com/sdk/index.html,以下载android公开的官方开发平台 打开链接 点击下载(同意协议并且根据操作系统选择32bit还是64bit) 下载完成后解压打开目录(你会看到 eclipse 目录,这是配置好 android 开发环境的,你也可以直接用)

windows下android NDK 环境配置

0.下载jdk并配置环境变量 下载最新jdk,百度搜索“jdk”就有了.安装完成后,配置环境变量(网上一搜,一堆,我这里仅作简要叙述)  计算机→属性→高级系统设置→高级→环境变量. 系统变量→新建 JAVA_HOME 变量 .变量值填写jdk的安装目录(本人是 D:\Program Files\Java\jdk1.7.0_45) 系统变量→新建 CLASSPATH 变量 变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

在Eclipse下搭建Android开发环境教程

我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但是很多朋友都认为NetBeans在中国用户不多,MyEclipse又是收费产品,都没有Eclipse好,很多读者都希望我们 介绍一下Eclipse下搭建的Android开发环境,本文将全程演示Android开发环境的搭建过程,无需配置环境变量.所有软件都是写该文章时最 新版本,希望大家喜欢. 一 相关下载 (

ezgo下安装eclipse及搭建android开发环境

1. JDK 即 Java Development Kit,Java 开发工具包 ezgo11 本来就已预装和配置了JDK,因此不需要再去下载安装,也不许要配置环境 验证:打开终端 $ java -version 2. 安装SDK Android SDK,即 Android Software Development Kit,Android 软件开发工具包. 下载地址:get android SDK 这里我是下载SDK only(在页面的下方有一个[DOWNLOAD FOR OTHER PLATF

Eclipse下配置TinyOS开发环境

通过给Eclipse安装Yeti 2 - TinyOS 2 Plugin for Eclipse来配置TinyOS IDE,从而可建立TinyOS Project Yeti 2的介绍请参考网站:http://tos-ide.ethz.ch/wiki/pmwiki.php?n=Site.TinyOSEclipsePlugin 1.下载.解压并打开Eclipse(我用的是Eclipse IDE for Java Developers) 2.打开Install对话框:Help->Install New

Eclipse下配置j2ee开发环境及与MySQL数据库的连接

Eclipse下配置j2ee开发环境 a.配置tomcat  windows->perferences->server->server runtime environments->Add…… b.installes JREs,然后点击Add 默认的standard VM就可以,点击next,然后点击directory 选择本机jdk安装的路径,finish. 与MySQL数据库的连接 与数据库连接要做的事情就是要用jdbc 首先要下载jdbc,在官网上下载,在将其mysql-con

Windows XP环境下 搭建Android NDK环境

搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygwin:http://www.cygwin.com/  (1.7.11-1)③ notepad++:http://notepad-plus-plus.org/download/v5.9.8.html 2 cygwin安装 ① 执行下载的setup.exe.点Next② 选择安装方式.选择在线安装.假设

Windows7环境下搭建Cocos2d-x3.3环境并配置android交叉编译环境

   本指南将介绍如何在Windows 7平台搭建Cocos2d-x Android开发环境.本指南操作要求一台搭载Windows 7平台及安装Visual Studio 2012/2013的电脑.最好拥有快速稳定的网络,因为在指南操作中需要下载许多软件包. 一.电脑环境 Win7+32位 二.必备软件下载地址与版本 1.Eclipse 下载地址:http://www.eclipse.org/downloads/ 笔者使用版本:Luna(最新版本Mars,官方定于2015年6月24日发布),记得

Android NDK 环境搭建 + 测试例程

懒得废话一大堆概念,关于ADT.NDK的概念要是你不懂,怎么会搜到这里来?所以你只需要根据下面的步骤来,就可以完成NDK环境搭建了. 步骤:(假设你未安装任何相关开发工具,如果已经安装了,就可以跳过) 一. 环境搭建 1. 安装 jdk   安装完毕后配置好环境变量(我安装的是jdk1.7) JAVA_HOME = C:\Java\jdk1.7.0_51 PATH = C:\Java\jdk1.7.0_51\bin CLASSPATH = .;%JAVA_HOME%/lib/dt.jar;%JA