La mia app ha diversi moduli JNI. Uso Android.mk per definire i moduli e quali file creare per ciascun modulo. Quindi ho dovuto disabilitare la chiamata automatica ndk-build. Il mio Gradle contiene quanto segue:Come utilizzare il plug-in sperimentale gradle per definire più moduli JNI?
sourceSets.main {
jni.srcDirs = [] //disable automatic ndk-build call with auto-generated Android.mk file
jniLibs.srcDirs = ['src/main/libs']
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
commandLine "ndk-build.cmd",
'-C', file('src/main/jni').absolutePath,
'-j', Runtime.runtime.availableProcessors(),
'all'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
Da ora Studio Android NDK il supporto e il debug nativo, avrei bisogno di utilizzare nuovo plugin Gradle sperimentale. C'è una sezione che ho bisogno di specificare il nome del modulo.
android.ndk {
// All configurations that can be changed in android.ndk.
moduleName = "native"
toolchain = "clang"
toolchainVersion = "3.5"
// Note that CFlags has a capital C, which is inconsistent with
// the naming convention of other properties. This is a
// technical limitation that will be resolved
CFlags += "-DCUSTOM_DEFINE"
cppFlags += "-DCUSTOM_DEFINE"
ldFlags += "-L/custom/lib/path"
ldLibs += "log"
stl = "stlport_static"
}
Tuttavia, tutti gli esempi che vedo solo specificano un modulo e non c'è modo di specificare quale file da costruire contro quel modulo.
Qualcuno ha qualche idea su come definire diversi moduli e specificare i file per ogni modulo in questo nuovo plugin gradle sperimentale?
Tu [*** can ***] (http://stackoverflow.com/a/32640823/192373) mantieni i tuoi script ** Android.mk ** con cura e goditi ancora i vantaggi del nuovo * experimental * plugin gradle, incluso il debug nativo. –
Creare un nuovo modulo per ogni modulo e aggiungerli come dipendenze nel progetto corrente. Sto solo postando questo qui nel caso in cui qualcun altro abbia bisogno di sapere –