Android Studio编译NDK app gradle配置

来源:互联网 发布:写编程到底什么意思 编辑:程序博客网 时间:2024/05/21 06:29
import org.apache.tools.ant.taskdefs.condition.Osapply plugin: 'com.android.application'android {    signingConfigs {        config {            storeFile file('my.keystore')            storePassword '123456'        }    }    compileSdkVersion 23    buildToolsVersion "22.0.1"    defaultConfig {        applicationId "packagename"        minSdkVersion 22        targetSdkVersion 22        versionCode 1        versionName "1.0"        ndk {            moduleName = "libname"            abiFilters "armeabi-v7a"            ldLibs "android", "log", "m"        }        // Enabling multidex support.        //multiDexEnabled true    }    sourceSets.main {        jniLibs.srcDir 'src/main/libs'        jni.srcDirs = ['src/main/jni'] //disable automatic ndk-build call    }    productFlavors {        'armeabi' {            flavorDimension "abi"            ndk {                abiFilter "armeabi"            }        }        'armeabi-v7a' {            flavorDimension "abi"            ndk {                abiFilter "armeabi-v7a"            }        }        'arm64-v8a' {            flavorDimension "abi"            ndk {                abiFilter "arm64-v8a"            }        }        'mips' {            flavorDimension "mips"            ndk {                abiFilter "mips"            }        }        'mips64' {            flavorDimension "mips64"            ndk {                abiFilter "mips64"            }        }        'x86' {            flavorDimension "abi"            ndk {                abiFilter "x86"            }        }        'x86_64' {            flavorDimension "abi"            ndk {                abiFilter "x86_64"            }        }        'fat' {            flavorDimension "abi"        }    }    project.ext.versionCodes = ['armeabi':1,                                'armeabi-v7a':2,                                'arm64-v8a':3,                                'mips':5,                                'mips64':6,                                'x86':8,                                'x86_64':9] //versionCode digit for each supported ABI, with 64bit>32bit and x86>armeabi-*    // make per-variant version code    applicationVariants.all { variant ->        // assign different version code for each output        variant.outputs.each { output ->            output.versionCodeOverride =                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + defaultConfig.versionCode        }    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }        debug {            debuggable true            jniDebuggable true        }    }}dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')   }// call regular ndk-build(.cmd) script from app directorytask ndkBuild (type: Exec) {    def ndkBuildPath = project.plugins.findPlugin('com.android.application').sdkHandler.getNdkFolder().absolutePath + File.separator    if (Os.isFamily(Os.FAMILY_WINDOWS)) {        ndkBuildPath += 'ndk-build.cmd'    } else {        ndkBuildPath += 'ndk-build'    }    commandLine ndkBuildPath, '-C', file('src/main').absolutePath}tasks.withType(JavaCompile) {    compileTask -> compileTask.dependsOn ndkBuild}
0 0
原创粉丝点击