我已經(jīng)使用ndk獨(dú)立工具鏈(standalone toolchain)編譯了第三方庫(kù),libabc.so。需要在android studio 中封裝jni接口,對(duì).so庫(kù)函數(shù)進(jìn)行調(diào)用。
1,修改當(dāng)前工程CMakeList.txt,添加依賴(lài)的庫(kù)和頭文件:
include_directories(${PROJECT_SOURCE_DIR}/libs/include)
target_link_libraries(# Specifies the target library.
? ? ? ? native-lib
? ? ? ? # Links the target library to the log library
# included in the NDK.
? ? ? ? ${log-lib}
${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libabc.so
${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy1.so
${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy2.so
${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy3.so
? ?${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy4.so)
2,修改app的build.gradle文件,添加如下字段,依賴(lài)庫(kù)文件夾和依賴(lài)庫(kù)平臺(tái):
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
flavorDimensions'cpuArch'
productFlavors {
arm7 {
dimension'cpuArch'
? ? ? ? ndk {
abiFilter'armeabi-v7a'
? ? ? ? }
}
universal {
dimension'cpuArch'
? ? ? ? // include all default ABIs. with NDK-r16,? it is:
//? armeabi-v7a, arm64-v8a, x86, x86_64
? ? }
}
3,在app文件夾下新建libs文件夾,并將依賴(lài)庫(kù)放入對(duì)應(yīng)平臺(tái)目錄中,如下圖所示:

4,建立java和cpp文件,交互數(shù)據(jù),cpp中包含庫(kù)的頭文件,在cpp中能夠直接調(diào)用庫(kù)函數(shù)了。