从Android studio 2.2 开始,Google推荐的JNI开发构建工具是CMake而不是NDK,参考官方文档:https://developer.android.com/studio/projects/add-native-code.html
CMake的编译配置参数参考一篇文章:https://www.jianshu.com/p/6332418b12b1
一个典型的使用CMake的Gradle配置如下:
1 defaultConfig { 2 minSdkVersion 14 // 指定支持最低的API版本号,如果不指定就是支持所有的版本,这有可能导致某些高级语法函数不支持等 3 targetSdkVersion 23 // 指定目前API版本,这个是主要编译版本,推荐与compileSdkVersion版本保持一致 4 versionCode 1 5 versionName "1.0" 6 7 externalNativeBuild { // 必要第(1)点,指定默认编译参数,cmake表示特指CMake工具链的参数 8 cmake { 9 cppFlags "-frtti -fexceptions" // 支持dynamic_cast与try等 10 abiFilters 'armeabi-v7a' // 指定编译架构 11 } 12 } 13 } 14 15 buildTypes { 16 debug { 17 jniDebuggable true 18 } 19 } 20 21 externalNativeBuild { // 必要第(2)点,指定CMake文件,也就是编译内容 22 cmake { 23 path "jni\\build\\android\\armeabi-v7a\\debug\\CMakeLists.txt" 24 } 25 }