我正在使用Android Studio构建具有多个ABI armeabi-v7a和x86的外部本机构建库。问题是,当我构建项目时,库位于这些文件夹中:
App/.externalNativeBuild/cmake/debug/armeabi-v7a/libs/armeabi-v7a/libApp.so
App/.externalNativeBuild/cmake/debug/x86/libs/x86/libApp.so
他们应该在这些位置内,以便在设备上正确找到:
App/src/main/jniLibs/armeabi-v7a/libApp.so
App/src/main/jniLibs/x86/libApp.so
有没有办法可以生成或直接构建到jniLibs中?目前我已经手工完成了符号链接,但我希望有自动处理不同ABI和不同配置的方法。 这是我目前的gradle脚本:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.org.app"
minSdkVersion 19
targetSdkVersion 19
ndk {
abiFilters 'armeabi-v7a', 'x86'
stl = "c++_static"
}
externalNativeBuild {
cmake {
arguments "-DCMAKE_BUILD_TYPE=Release"
}
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
externalNativeBuild {
cmake {
path '../../../CMakeLists.txt'
}
}
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/jniLibs'
}
}
答案 0 :(得分:0)
使用
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDirs 'src/main/jniLibs'
}