android开发NDK环境配置




    我的实践方法,以供将来参考。

  1. 先到Android官网下载开发工具ADT,该工具集成eclipseAndroid SDK,可以管理Android SDK和相关开发插件,下载地址:http://pan.baidu.com/s/1mgn2dOs

  2. 下载Android NDK,注意ADT版本在20之前可安装NDK插件。下载地址:http://developer.android.com/sdk/index.html

  3. 下载搞定之后,直接安装NDK即可。

  4. 集成NDK,打开EclipseWindow->Preferences->Android->NDK配置NDK插件的路径,如下图:

  5. 接下来新建个NDK的小例子,先新建个Android工程NdkTest,再在工程上右键点击Android Tools->Add Native Support...,然后给我们的.so文件取个名字。添加成功后工程下后创建jni文件夹,如下图:myndk.cpp就是源文件,Android.mk就是编译配置。

  6. 编写.cpp程序,如下图:

  7. 编写android程序,如下图:这里先加载libmyndk.so文件,创建stringFromJNI接口方可调用。

  8. 执行android程序,执行先编译NDK文件,再编译java程序。

  9. 自动编译NDK文件配置。

  1. 先创建builerProject->Properties->Builders->New,新建一个Builder,在弹出的Chooseconfiguration type对话框,选择Program,点击OK,如下图:

  2. 先创建名称NDK_Builermain选项卡中 先在“Location”中输入nkd-build.cmd的路径,在“WorkingDiretcoty”中选项工程目录,点击“Browse Workspace”来选取工程目录。如下图:

  3. Refresh选项卡中如下图配置:

  4. Build Options选项卡中选择如下配置,如下图:点击“Specify Resources…”勾选项目工程的“jni“目录,点击”finish“ 

  1. 运行程序即可。如运行时崩溃,遇到java.lang.UnsatisfiedLinkError: stringFromJNI错误,解决办法:在C++文件中函数定义前添加extern"C"修饰,如下图:原因是:使用extern "C"修饰,编译器会按C语言的方式编译和连接。在C语言中,函数编译之后函数名与C++函数编译之后不同,例如foo(int x, int y),C可能会编译成_foo的名字,而C++因为支持重载,所以会编译成像_foo_int_int这种带参数的函数名。如果是按照C语言的编译方式,调用foo函数是找不到_foo的函数名就会报出函数名找不到的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值