Bolehkah saya mentakrifkan LOCAL_SRC_FILES dalam NDK DSL?

DDD
Lepaskan: 2024-11-23 09:55:17
asal
287 orang telah melayarinya

Can I define LOCAL_SRC_FILES in NDK DSL?

Boleh mentakrifkan LOCAL_SRC_FILES dalam NDK DSL?

Untuk mentakrifkan LOCAL_SRC_FILES dalam blok Gradle ndk{}, adalah penting untuk ambil perhatian bahawa ciri ini tidak disokong oleh pemalam Gradle semasa. Malah pemalam "percubaan" hanya membenarkan direktori ditambah.

Pendekatan Disyorkan

Menggunakan Android.mk tradisional disyorkan untuk melaksanakan tugas ini dengan pasti. Selain itu, meninggalkan jni.srcDirs sebagai [${jniSrc}] dicadangkan untuk membenarkan Android Studio memaparkan fail ini untuk akses mudah dan penyerlahan sintaks.

NDK Build Disabled

Jika Android tradisional. pendekatan mk tidak diingini, tugas binaan NDK biasa boleh dilumpuhkan dan tugas buildNative boleh disuntik sebaliknya:

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

Gradle Experimental Plugin

Untuk pemalam 'com.android.tools.build:gradle-experimental:0.2.0', pendekatan yang sama boleh diambil, tetapi dengan padanan tugas yang berbeza:

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

Kecualikan Fail daripada NDK Bina

Dengan pemalam percubaan 0.4.0, fail boleh dikecualikan daripada binaan NDK mengikut corak:

android.sources {
    main {
       jni.source {
            srcDirs = ["~/srcs/jni"]
            exclude "**/win.cpp"
        }
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah saya mentakrifkan LOCAL_SRC_FILES dalam 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan