刚开始创建项目的时候并没有勾选“include C++ support” 选项:
后期增加步骤:
1.拷贝已有支持C++项目的CMakeLists.txt文件到现有项目的app目录下;
2.在app/src/main 目录下新建cpp文件夹;
3.修改app目录下的build.gradle文件,分别在defaultConfig的大括号和android的大括号中添加“externalNativeBuild”项:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.yongdaimi.android.ffapitest"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
}
ndk {
abiFilters "armeabi-v7a"
}
}
sourceSets {
main {
jniLibs.srcDirs=['libs']
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
最后同步一下gradle文件就好了,
注意:
1.ndk abiFilters 以及 sourceSets 不是必须的,我是因为引用了别的类库所以才加的这两句话。
2.最好先在native-lib.cpp中添加好对应的测试JNI方法,否则在Activity中新写的native方法点击创建无法生成到native-lib.cpp文件中去,不知道为什么。