最近需要打包C++文件成so库,按照网上教程同步的方式,build/intermediates下始终没有ndk文件中的so库
当前环境
windows 10
Android Studio3.5.3
NDK r21
- 配置NDK环境变量
我的电脑 右键–>属性–>高级–>环境变量 path中添加ndk-bundle路径 - 新建jni文件
src/main/java同级目录下src/main/jni
将c++文件和头文件全部放入 - jni目录下新建Android.mk文件
你的so库名称对应java类中System.loadLibrary(“so库名称”)1
2
3
4
5
6LOCAL_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架构 - 在jni目录下打开power shell
输入ndk-build
jni同级目录下会有libs/* 各平台so库文件 - app build.gradle中配置so库路径
1
2
3
4
5
6
7
8
9
10android{
//***
sourceSets {
main() {
jniLibs.srcDirs = ['src/main/libs']
jni.srcDirs = []
}
}
}