NDK DSL에서 LOCAL_SRC_FILES 정의
Android NDK DSL을 사용하면 모듈의 기본 소스 파일을 지정할 수 있습니다. 그러나 이전 버전의 DSL에서는 LOCAL_SRC_FILES를 수동으로 정의할 수 있는 직접적인 방법이 없었습니다.
실험적 플러그인 솔루션
실험적인 Android Gradle 플러그인 0.4.0을 사용하면, 이제 패턴을 기반으로 NDK 빌드에서 소스 파일을 제외할 수 있습니다. 예:
android.sources { main { jni.source { srcDirs = ["~/srcs/jni"] exclude "**/win.cpp" } } }
이전 플러그인에 대한 해결 방법
안타깝게도 이전 버전의 DSL에서는 LOCAL_SRC_FILES를 직접 정의할 수 없습니다. 대신 기존 Android.mk 파일을 사용하여 네이티브 소스 파일을 관리하는 것이 좋습니다.
기본 NDK 빌드 작업을 비활성화하고 맞춤 작업을 삽입하여 네이티브 소스 파일을 컴파일할 수 있습니다.
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 }
주의 사항
이 해결 방법은 디버그 가능한 설정을 생성하지 못할 수도 있습니다. 이 문제를 해결하려면 ndk-build를 사용하여 정적 라이브러리를 구축하고 이를 필요한 개체와 연결하여 라이브러리에서 기호를 가져올 수 있습니다.
위 내용은 Android NDK DSL에서 LOCAL_SRC_FILES를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!