zoukankan      html  css  js  c++  java
  • 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的空文件,刷新即可。

    NDK插件下载地址

    下面再配置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:AndroidDevandroid-ndk-r7 dk-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>

  • 相关阅读:
    winform 中xml简单的创建和读取
    睡眠和唤醒 进程管理
    [山东省选2011]mindist
    关于zkw流的一些感触
    [noip2011模拟赛]区间问题
    [某ACM比赛]bruteforce
    01、Android进阶Handler原理解析
    02、Java模式UML时序图
    04、Java模式 单例模式
    14、Flutter混合开发
  • 原文地址:https://www.cnblogs.com/strayromeo/p/5570347.html
Copyright © 2011-2022 走看看