最近将公司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 }