Um LOCAL_SRC_FILES im Gradle ndk{}-Block zu definieren, ist es wichtig zu beachten, dass diese Funktion von nicht unterstützt wird aktuelle Gradle-Plugins. Selbst das „experimentelle“ Plugin erlaubt nur das Hinzufügen von Verzeichnissen.
Um diese Aufgabe zuverlässig zu erfüllen, wird die Verwendung des traditionellen Android.mk empfohlen. Darüber hinaus wird empfohlen, jni.srcDirs als [${jniSrc}] zu belassen, damit Android Studio diese Dateien für einen einfachen Zugriff und eine Syntaxhervorhebung anzeigen kann.
Wenn das traditionelle Android. Ist der mk-Ansatz nicht erwünscht, können die regulären NDK-Build-Aufgaben deaktiviert und eine buildNative-Aufgabe eingefügt werden stattdessen:
def ndkBuild = android.ndkDirectory import org.apache.tools.ant.taskdefs.condition.Os if (Os.isFamily(Os.FAMILY_WINDOWS)) { ndkBuild += '.cmd' } task buildNative(type: Exec, description: 'Compile JNI source via NDK') { commandLine '$ndkBuild', 'NDK_PROJECT_PATH="$jniSrc/..' } task cleanNative(type: Exec, description: 'Clean JNI object files') { commandLine '$ndkBuild', 'clean', 'NDK_PROJECT_PATH="$jniSrc/..' } clean.dependsOn 'cleanNative' tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn buildNative } tasks.all { task -> if (task.name.contains('compileDebugNdk') || task.name.contains('compileReleaseNdk')) task.enabled = false }
Für das Plugin „com.android.tools.build:gradle-experimental:0.2.0“ kann ein ähnlicher Ansatz gewählt werden, jedoch mit Verschiedene Aufgabenzuordnungen:
tasks.all { task -> if (task.name.startsWith('compile') && task.name.contains('MainC')) { task.enabled = false } if (task.name.startsWith('link')) { task.enabled = false } if (task.name.endsWith("SharedLibrary") ) { task.dependsOn buildNative } }
Mit experimentellem Plugin 0.4.0 können Dateien nach Muster vom NDK-Build ausgeschlossen werden:
android.sources { main { jni.source { srcDirs = ["~/srcs/jni"] exclude "**/win.cpp" } } }
Das obige ist der detaillierte Inhalt vonKann ich LOCAL_SRC_FILES in NDK DSL definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!