Ubuntu 12.04 搭建ndk编译环境

本文详细介绍了在Ubuntu 12.04上搭建Android NDK编译环境的过程,包括通过Android Studio自动生成NDK环境的步骤,以及遇到的坑,如CMake版本不匹配和生成头文件失败的问题。文中提供了解决这些问题的方法,如手动使用NDK build,并解释了如何编写Android.mk和Application.mk文件,最终成功运行并调用本地方法。
摘要由CSDN通过智能技术生成

搭建ndk环境之前,请保证你能新建android项目并能在手机上正常运行

通过AS自动生成ndk环境

更新AS到较新的版本,通过File-setting-Androd SDK下载sdktools(这里不需要启动manager界面)
主要是这三项:cmake, lldb,ndk
待下载完成后,启动android studio,start a new project.
选中Include C++ Support,
如图 选中Include C++ Support
后续均可以默认,直到finish,等待自动生成。

然而,实际运行总那么不尽人意。下面讲讲本人在配置环境是遇到的坑。

坑1:cmake 3.6.3155560 报错,GLIBCXX_2.4.18 required by cmake
可能ndk和cmake的版本不匹配吧,然后,我用AS自己的manager去下载两个新工具,还是报错,同样的错误!
查看GLIBCXX发现
查看是否真的缺少GLIBCXX
好吧,却是没有!在没网没root权限的linux上,尝试去安装3.4.18这个库,遗憾的发现只有rpm包,ok下载安装包安装(本人推测是可行的)。
但在ubuntu下不能直接安装rpm包,需要使用alien工具(下载命令:sudo apt-get install alien)将rpm转换成deb包安装(本人推测也是可行的)。

$ alien ***.rpm
$ dpkg -i ****.deb

但在没root权限的linux中,就算将alien安装成功,执行alien 转换 rpm安装包也会失败,非root用户不能转换文件格式。
所以,放弃这个方法了。方案转换为:使用ndk 手动build工程,手动操作也有一个好处,你知道各个步骤怎么协调的(不要太依赖自动话工具,除非你已经懂了自动化构建的流程,那个时候,你需要节约时间,是完全没有问题的)。


直接使用ndk build

坑2:将java文件生成h头文件失败
命令:javah jni ***.***.***.ClassName
这个命令执行的路径需要注意:

  1. AS 在**/src/main/java 下执行javah 命令
    首先需要class文件,因此你需要先通过javac 编译这个java文件以便生成class文件。
  2. 者在project/build/intermediates/classes/debug/目录下执行
    且class的名字一定要是全限定名称,即你的package+name(.class 注:参数是class文件,不是java文件,你可以通过AS工具栏上的build-MakeProject生成class文件,这个文件就在上述的classes/debug/目录下,且不需要后缀)

.h文件生成后,就开始写C(/C++)代码了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值