Android Studio NDK build 時的錯誤處理
阿新 • • 發佈:2019-02-20
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
}