import org.apache.tools.ant.taskdefs.condition.Os apply 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 directory task 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 }
Android Studio编译NDK app gradle配置
最新推荐文章于 2021-05-26 13:01:46 发布