从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 }
View Code

相关文章: