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 !!!搞定了


分享到:


相關文章: