最近需要打包C++文件成so庫,按照網(wǎng)上教程同步的方式,build/intermediates下始終沒有ndk文件中的so庫
當(dāng)前環(huán)境
windows 10
Android Studio3.5.3
NDK r21
- 配置NDK環(huán)境變量
我的電腦 右鍵-->屬性-->高級-->環(huán)境變量 path中添加ndk-bundle路徑 - 新建jni文件
src/main/java同級目錄下src/main/jni
將c++文件和頭文件全部放入 - jni目錄下新建Android.mk文件
你的so庫名稱對應(yīng)java類中System.loadLibrary("so庫名稱")
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := 你的so庫名稱
LOCAL_SRC_FILES := 你的.cpp
include $(BUILD_SHARED_LIBRARY)
- jni目錄下新建Application.mk文件
APP_ABI := all
打包所有支持cpu架構(gòu) -
在jni目錄下打開power shell
輸入ndk-build
jni同級目錄下會有l(wèi)ibs/* 各平臺so庫文件
- app build.gradle中配置so庫路徑
android{
//***
sourceSets {
main() {
jniLibs.srcDirs = ['src/main/libs']
jni.srcDirs = []
}
}
}