1. 程式人生 > >Android Studio NDK build 時的錯誤處理

Android Studio NDK build 時的錯誤處理

Android Studio專案中包含jni檔案時,編譯會遇到

Error:Execution failed for task ':app:compileDebugNdk'.

這是因為gradle android plugin試圖自己去呼叫ndk-build來編譯專案中的原始檔,而且會忽略專案中的Makefile檔案使用自動生成的Makefile。

為了避免自動呼叫ndk-build來編譯jni,需在app/build.gradle中加入以下程式碼:

sourceSets.main {
    jniLibs.srcDir 'src/main/libs'
    jni.srcDirs =[]
//disable automatic ndk-build call}
#手動呼叫ndk-build來編譯jni
import org.apache.tools.ant.taskdefs.condition.Os// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type:Exec){if(Os.isFamily(Os.FAMILY_WINDOWS)){
        commandLine 'ndk-build.cmd','-C', file('src/main').absolutePath
    }
else{ commandLine 'ndk-build','-C', file('src/main').absolutePath }} tasks.withType(JavaCompile){ compileTask -> compileTask.dependsOn ndkBuild }