Bagaimana untuk Menentukan LOCAL_SRC_FILES dalam Android NDK DSL?

Susan Sarandon
Lepaskan: 2024-11-16 04:11:03
asal
884 orang telah melayarinya

How to Define LOCAL_SRC_FILES in Android NDK DSL?

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"
        }
    }
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan