Я хотел бы знать, можно ли определить LOCAL_SRC_FILES в блоке gradle.build ndk {}.
В настоящее время я использую:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
в моем верхнем уровне gradle.build файл.
Мой jni-модуль gradle.build файл выглядит следующим образом:
apply plugin: 'com.android.library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 11
buildToolsVersion "22.0.1"
def jniSrc = System.getProperty("user.home") + "/srcs/jni"
defaultConfig {
ndk {
moduleName "core"
stl "gnustl_shared"
cFlags "-std=c++11"
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
jni.srcDirs = ["${jniSrc}"]
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
jniDebuggable true
}
}
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
}
Причина, по которой я спрашиваю, заключается в том, что под моими jni-источниками есть код, предназначенный для разных платформ, а не только для Android, но также для iOS и WinRT.
Я немного неохотно перехожу к экспериментальному "com.android.tools.build: gradle-experimental:0.2.0", но если вышеупомянутый модуль решает проблему, я могу попробовать.
Я также не хотел бы использовать:
jni.srcDirs = []
и переопределить создание Android.mk и, таким образом, использовать мой собственный пользовательский, учитывая, что я не уверен, что я мог бы отлаживать С++ изначально из Android Studio после этого (я мог ошибаться здесь, хотя я определенно не эксперт Android Studios ndk plugin).
Большое спасибо заранее,
Манос