1. 程式人生 > >Android studio 使用自定義mk檔案編譯jni專案

Android studio 使用自定義mk檔案編譯jni專案

最近將公司ndk專案從eclipse遷移到as,為了方便省事,直接使用原有mk檔案。參考網路資料,順利完成遷移工作。現貼出使用自定義mk檔案的關鍵程式碼,mark以備後面使用。


 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        sourceSets {
            main 
{ jni.srcDirs = []//設定禁止gradle生成Android.mk jniLibs.srcDirs = ['src/main/libs']//設定目標的so存放路徑 } } } } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } //設定編輯的工作目錄 task ndkBuild(type: Exec) { workingDir file('src/main/jni'
) commandLine getNdkBuildCmd() } //設定清理目錄 task cleanNative(type: Exec){ workingDir file('src/main/jni') commandLine getNdkBuildCmd(), 'clean' } clean.dependsOn cleanNative//執行清理 def getNdkDir() { if (System.env.ANDROID_NDK_ROOT != null) return System.env.ANDROID_NDK_ROOT Properties properties = new
Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkDir = properties.getProperty('ndk.dir', null) if (ndkDir == null) throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.") return ndkDir } def getNdkBuildCmd() { def ndkBuild = getNdkDir() + "/ndk-build" ndkBuild += ".cmd" return ndkBuild }