https://blog.csdn.net/zeqiao/article/details/77893167
一、在原有旧项目中引入
1.新建C/C++源码文件夹和文件
main>>cpp 文件夹下加源码
2.编写CMakeLists.txt文件
# 设置构建本机库文件所需的CMake的最小版本
cmake_minimum_required(VERSION 3.4.1)
#添加自己写的C/C++源文件
add_library( demo-lib
SHARED
src/main/cpp/demo-lib.cpp )
#依赖NDK中的库
find_library( log-lib
log )
#将目标库与NDK中的库进行连接
target_link_libraries( demo-lib
${log-lib} )
3.配置build.gradle文件
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
// 默认是 “ cppFlags "" ”
// 如果要修改 Customize C++ Support 部分,可在这里加入
cppFlags "-frtti -fexceptions"
}
}
}
buildTypes {
...
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
...
}
注意点:①要在哪个类运用 JNI,就得加载相应的动态库. ②快速生成代码:Alt+Enter ③新建 C/C++ 源代码文件,要添加到 CMakeLists.txt 文件中
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
#设置生成的so动态库最后输出的路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})
add_library( # Sets the name of the library.
native-lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
src/main/cpp/native-lib.cpp )
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
${log-lib} )