eclipse ndk 配置和简单开发demo
记录下以备忘:
android开发的各种资源国内镜像
http://www.androiddevtools.cn/
前端时间尝鲜用android stuido1.5开发了个android的小项目,发现android studio还是蛮好用的,特别是代码提示这块比eclipse 强大多了,还有就是ndk的开发比eclipse方便,但是自从升级到android stuido2.x以后ndk的开发就有问题了,代码没提示了,能编译通过,貌似这个是这个ide的bug,目前最新版本还没解决,如果需要修改native的代码还要切换到1.5的studio,感觉很烦。所以研究下了eclipse开发ndk的方法,特备注下以备忘。
注意:一下操作是建立在你已经有android 的sdk 和ndk的前提下。
(1)首先下载ADT Bundle,ADT Bundle包含了Eclipse、ADT插件和SDK Tools,是已经集成好的IDE,只需安装好Jdk即可开始开发,推荐初学者下载ADT Bundle,不用再折腾开发环境。
下载地址:23.0.2 64位
(2)下载完成后你懂的,直接解压,并指定android sdk的路径,但是你会发现没有配置ndk目录的选项,那是因为没有安装ndk的插件,安装ndk的插件后选择ndk安装目录即可,选择目录是会出现所选的目录无效的问题,那就在ndk目录新建一个ndk-build的空文件,刷新即可。
下面再配置eclipse自动刷新编译c,c++资源
(3)打开Eclipse,新建一个Android工程(我的取名为TestNdk),在工程目录TestNdk下新建jni文件夹,该文件夹就用来保存NDK需要编译的文件代码等。
(4)新建并配置一个Builder:
(a)Project->Properties->Builders->New,新建一个Builder。
(b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】:
(c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。
在“Name“中输入新builders的名称(我取名为Ndk_Builder)。
在“Location”中输入nkd-build.cmd的路径。
(我的是D:\AndroidDev\android-ndk-r7\ndk-build.cmd,根据各自的ndk路径设置,也可以点击“Browser File System…”来选取这个路径)。
在“Working Diretcoty”中输入${workspace_loc:/TestNdk}(也可以点击“Browse Workspace”来选取TestNdk目录)。
(d)【Edit Configuration】对话框中,配置选项卡【Refresh】。
勾选“Refresh resources upon completion”,
勾选“The entire workspace”,
勾选“Recuresively include sub-folders”。
(e)【Edit Configuration】对话框中,配置选项卡【Build options】。
勾选“After a “Clean””,
勾选“During manual builds”,
勾选“During auto builds”,
勾选“Specify working set of relevant resources”。
点击“Specify Resources…”
勾选TestNdk工程的“jni“目录,点击”finish“。
点击“OK“,完成配置。
OK,到这里Eclipse就能够自动调用NDK编译jin目录下的C/C++代码了。
(5)将ndk的安装目录设置到系统环境变量中
(6)一个完整可以运行的demo,jni目录下有个autojavah.bat的文件,设置下路径点击即可生成.h头文件。(到这步可以顺利编译通过了,如果你不需要代码提示,到这步就行了。
需要代码提示继续下面两步:
(7)右击项目选择Anroid Tools,然后将项目Add Native Support,然后发现编译无法通过了。
(8)
Type '*****' could not be resolved
Method '******' could not be resolved
等等很多诸如此类的错误
解决方法:
是由于没有将jni.h导入的缘故,而这个文件在ndk的目录下面。所以,参照以下步骤:
Project Properties -> C/C++ General -> Path and Symbols
选择include标签,Add -> $Android_NDK_HOME/platforms/Android-14/arch-arm/usr/include
且选中All languages.
最后Apply -> OK
这样错误就解决了。
如果添加了头文件还是问题,那可能是因为工程是C++工程,但代码是用的C风格的代码,解决方法为将工程文件".project"中的“<nature>org.eclipse.cdt.core.ccnature</nature>”行去掉保存,重新打开Eclipse工程。参见:
http://stackoverflow.com/questions/11666711/type-jint-could-not-be-resolved-and-jnienv-jclass
还有一种方法:在extern "C"的大括号中加入#incldue <jni.h>
eclipse ndk 配置和简单开发demo的更多相关文章
- Eclipse NDK 配置,无需安装Cygwin
Eclipse NDK 配置,不用安装Cygwin 文章转自http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html 一.关于 ...
- Eclipse NDK 配置
一.关于NDK:NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java ...
- Eclipse NDK 配置,不用安装Cygwin
一.关于NDK:NDK全称:Native Development Kit.1.NDK是一系列工具的集合.NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用 ...
- 在eclipse中配置一个简单的spring入门项目
spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...
- NDK 配置及简单项目
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50998720 文章出自:薛瑄的博客 你也能够查看我的其它同类文章,也会让你有一定的 ...
- 在Eclipse中配置安卓的开发环境 (踩过的坑)
这个学期学校有门安卓程序设计课需要安装安卓开发环境. 一开始安装的是Andriod Studio,但是过程很坎坷很心酸,遇到各种各样的问题,最后还没有解决. 没办法决定用Eclipse配置安卓环境,虽 ...
- (转) 在Eclipse中进行C/C++开发的配置方法(20140721最新版)
本文转载自:http://blog.csdn.net/baimafujinji/article/details/38026421 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其 ...
- 在windows下用eclipse + pydev插件来配置python的开发环境
在windows下用eclipse + pydev插件来配置python的开发环境 一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python. ...
- eclipse中配置c++开发环境 Eclipse + CDT + MinGW
转自eclipse中配置c++开发环境 Eclipse + CDT + MinGW 基本框架:Eclipse + CDT + MinGW 背景知识: CDT:CDT 是完全用 Java 实现的开放源码 ...
随机推荐
- javascript 设置元素滚动大小
3. 滚动大小 最后要介绍的是滚动大小(scroll dimension),指的是包含滚动内容的元素的大小. 有些元素(例如 元素),即使没有执行任何代码也能自动地添加滚动条:但另外一些元素,则需要通 ...
- Win32GUI代码示例
// Win32UI.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "Win32UI.h" #includ ...
- javaee加密部署,tomcat使用自己的classloader解密
http://www.2cto.com/kf/201312/264455.html [起因] 公司需要对一个web项目进行加密之后出售, 大家都知道的,class很好反编译, 所以需要对class文件 ...
- 非root权限 安装更新gcc
本文主要参考网络上文章,并根据自己安装出现的问题进行补充. 参考文章: 1.gcc和boost的升级步骤(非root权限):https://blog.csdn.net/u010246947/artic ...
- go channel 阻塞
初接触 go 有不对得请解释下 Channel是goroutine之间进行通信的一种方式,先看下面代码为什么会阻塞: func closer(ch chan int) { ch <- 1 log ...
- python计算纪念日相关
注意需要python3 1.距离某一特定日期多少天后,如 100天 from datetime import datetime,timedelta pre=datetime(2016,12,12,22 ...
- 简单的dos命令
cd .. 进入上一层目录cd /.. 进入当前盘所有根目录d: 进入d盘dir 查看下一级目录d:>d:\abc.txt 新建一个文档hostname 主机名SET 查看环境变 ...
- linux下如何使用自己安装的SunJDK替换默认的OpenJDK
在linux系统中,由于涉及到版权问题,在大部分linux系统的发行版本中,默认都安装了OpenJDK,并且OpenJDK的java命令也已经加入到环境变量中了. 在刚装好的linux系统中,运行ja ...
- hbase(二)hfile结构
HFile结构 截止hbase 1.0.2版本,hfile已经有3个版本,要深入了解hfile的话,还是要从第一个版本开始看起. hfile v1 Data Block:保存表中的数据,这部分可以被压 ...
- elasticsearch系列(七)java定义score
概述 ES支持groovy 和 java两种语言自定义score的计算方法,groovy甚至可以嵌套在请求的参数中,有点厉害,不过不在本篇讨论范围. 如何用自定义的java代码来定义score如何产生 ...