Android Studio 生成 so 文件

把大象装进冰箱需要几步?

其实,如果顺利的话,AS 生成 so 的步骤还是比较清晰的。

但是,随着我升级到了 AS 最新版 「3.3.1 稳定版」

而且我也不再想使用下面两种方法解决

Your project contains C++ files but it is not using a supported native build

这个问题。

一、使用 「老版本 NDK」进行兼容:

把 android.useDeprecatedNdk=true 添加进 gradle.properties.

二、隐藏 cpp 文件:

在 app 的 build.gradle 中添加

    sourceSets {
                main {
                         jni.srcDirs = []
                          }
                       }

那么,步骤就多了几步了,不过没关系,只要跟着我填坑的姿势一步一步走 还是能成功的,而且花费的时间也不是很多哟,一起来看看吧。

开始啦

一、先配置 NDK 环境

说明:创建项目完成之后,点击图片右上角的 项目结构,然后选择
SDK Location
就能看到 NDK 配置出现了,直接点击让 AS 自己下载、配置就可以了

二、配置好之后,创建 JNI 文件夹

看图就会啦

三、创建好之后,通过javah命令生成「头文件」

命令:

  javah com.example.ndktest.MainActivity

即 javah 后边跟着 我们的 MainActivity的「引用名」,没有.class后缀的哦

复制引用名方法:复制好之后,把.class后缀去掉

 

注意我是先进入的java目录,然后开始执行的呦,生成之后,记得将这个头文件移动到 jni目录中

四、配置 build.gradle,然后构建项目

按照图片方式执行完后,报错了

这个时候,你可以按照我 开头说的那两个方法解决一下,是可以通过的,可是现在我有点倔,就不用那两种方法,我决定听一听 android studio 善意的提醒
Consider using CMake or ndk-build integration.

五、按照 Android Studio 的提示,使用 CMake 或者 ndk-build 去生成

 


module 处右键 选择 Link C++ Project with Gradle

 

选择哪个都可以,这里我选择是 ndk-build,因为 CMake 对应的 CMakeLists.txt 文件懒得写

ndk-build对应的 Android.mk文件却有现成的,
位置在:app/build/intermediates/ndk/debug如下图所示:

 

复制路径,然后指定一下即可,如图

最后,点下小锤子

这样就成功生成了,生成的位置见下图

六、复制 so 文件到 libs 目录即可

Bingo !!!搞定了

剩下的有关 ndk 文章请持续关注哦 ~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值