Afin de définir LOCAL_SRC_FILES dans le bloc Gradle ndk{}, il est important de noter que cette fonctionnalité n'est pas prise en charge par plugins Gradle actuels. Même le plugin "expérimental" permet uniquement d'ajouter des répertoires.
L'utilisation du traditionnel Android.mk est recommandée pour accomplir cette tâche de manière fiable. De plus, il est suggéré de laisser jni.srcDirs sous la forme [${jniSrc}] pour permettre à Android Studio d'afficher ces fichiers pour un accès facile et une coloration syntaxique.
Si Android traditionnel. L'approche mk n'est pas souhaitée, les tâches de construction NDK régulières peuvent être désactivées et une tâche buildNative peut être injectée à la place :
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 }
Pour le plugin 'com.android.tools.build:gradle-experimental:0.2.0', une approche similaire peut être adoptée, mais avec correspondance de tâches différentes :
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 } }
Avec expérimental plugin 0.4.0, les fichiers peuvent être exclus de la construction du NDK par modèle :
android.sources { main { jni.source { srcDirs = ["~/srcs/jni"] exclude "**/win.cpp" } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!