Android studio 使用自定义mk文件编译jni项目

来源:互联网 发布:网络的好处与坏处 编辑:程序博客网 时间:2024/05/29 12:04

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

0 0
原创粉丝点击