Mentakrif LOCAL_SRC_FILES dalam NDK DSL
Android NDK DSL membolehkan anda menentukan fail sumber asli untuk modul anda. Walau bagaimanapun, dalam versi lama DSL, tiada cara langsung untuk mentakrif LOCAL_SRC_FILES secara manual.
Penyelesaian Plugin Eksperimen
Dengan pemalam Android Gradle 0.4.0 percubaan, anda kini boleh mengecualikan fail sumber daripada binaan NDK berdasarkan corak. Contohnya:
android.sources { main { jni.source { srcDirs = ["~/srcs/jni"] exclude "**/win.cpp" } } }
Penyelesaian untuk Pemalam Lama
Malangnya, untuk versi DSL yang lebih lama, anda tidak boleh mentakrifkan LOCAL_SRC_FILES secara langsung. Sebaliknya, adalah disyorkan untuk menggunakan fail Android.mk tradisional untuk mengurus fail sumber asli anda.
Anda boleh melumpuhkan tugas binaan NDK lalai dan menyuntik tugas tersuai untuk menyusun fail sumber asli anda:
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 }
Kaveat
Perhatikan bahawa penyelesaian ini mungkin tidak menghasilkan persediaan boleh nyahpepijat. Untuk menangani perkara ini, anda boleh membina perpustakaan statik dengan ndk-build dan memautkannya dengan objek yang diperlukan untuk menarik simbol daripada perpustakaan.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan LOCAL_SRC_FILES dalam Android NDK DSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!