Android Studio 生成 so 文件


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 中添加

<code>    sourceSets {
main {
jni.srcDirs = []
}
}
/<code>

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

开始啦

一、先配置 NDK 环境

Android Studio 生成 so 文件

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

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

看图就会啦

Android Studio 生成 so 文件

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

Android Studio 生成 so 文件

命令:

<code>  javah com.example.ndktest.MainActivity
/<code>

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

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

Android Studio 生成 so 文件


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

Android Studio 生成 so 文件

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

Android Studio 生成 so 文件

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

Android Studio 生成 so 文件

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

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


Android Studio 生成 so 文件


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


Android Studio 生成 so 文件

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

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

Android Studio 生成 so 文件


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

Android Studio 生成 so 文件

最后,点下小锤子

Android Studio 生成 so 文件

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

Android Studio 生成 so 文件

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

Android Studio 生成 so 文件

Bingo !!!搞定了


分享到:


相關文章: