此文版权属于作者所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!

文件 androidVersion.gradle

//---------------------------// tools function// see: http://www.egeek.me/2013/12/07/gradle-auto-detect-android-sdk-and-build-tools-versions/import org.codehaus.groovy.runtime.StackTraceUtilsint[] sdksAvailable() {    def sdks = new ByteArrayOutputStream()    exec {        commandLine 'android', 'list'        standardOutput = sdks    }    sdks = sdks            // get the output            .toString()            // split to strings            .split('\n')            // leave only strings with API levels            .findAll { it ==~ /\s*API level:.*/ }            // extract the API levels            .collect { (it =~ /\s*API level:\s*(\d+).*/)[0][1].toInteger() }            // sort from highest to lowest            .sort( { a, b -> b <=> a } )    sdks}int highestSdkAvailable(int defaultSdk) {    try {        def sdks = sdksAvailable()        def highestSdk = sdks[0]        if (highestSdk != null) {            println "Using highest found SDK " + highestSdk            highestSdk        } else {            println "No installed SDKs found. Using default SDK " + defaultSdk            defaultSdk        }    } catch (any) {        //println "Exception while determining highest SDK. Using default SDK " + defaultSdk        //StackTraceUtils.sanitize(any).printStackTrace()        defaultSdk    }}String androidSDKDir() {    def androidExecPath = new ByteArrayOutputStream()    exec {        commandLine 'which', 'android'        standardOutput = androidExecPath    }    file(androidExecPath.toString().trim()).getParentFile().getParentFile()}String[] buildToolsAvailable() {    def buildToolsDir = new File(androidSDKDir(), "build-tools")    buildToolsDir.list().sort { a, b -> b <=> a }}String latestBuildToolsAvailable(String defaultBuildTools) {    try {        def buildToolsVersions = buildToolsAvailable()        def latestBuildTools = buildToolsVersions[0]        if (latestBuildTools != null) {            println "Using latest found build tools " + latestBuildTools            latestBuildTools        } else {            println "No installed build tools found. Using default build tools " +                    defaultBuildTools            defaultBuildTools        }    } catch (any) {        //println "Exception while determining latest build tools. Using default build tools " + defaultBuildTools        //StackTraceUtils.sanitize(any).printStackTrace()        defaultBuildTools    }}ext {    androidVer = [:]    androidVer['highestSdkAvailable'] = highestSdkAvailable(19)    androidVer['latestBuildToolsAvailable'] = latestBuildToolsAvailable("23.0.3")}

用法,build.gradle 那边:

apply from: '../tools/androidVersion.gradle'android {    compileSdkVersion androidVer['highestSdkAvailable']    buildToolsVersion androidVer['latestBuildToolsAvailable']




更多相关文章

  1. Flutter开发中问题汇总贴(持续更新中)
  2. Android国内一些比较知名的大牛
  3. S5PV210 Android(安卓)DM9000驱动
  4. android studio3.0 NDK编译Error: cannot use ‘throw’ with ex
  5. 在Android(安卓)NDK下打印log
  6. Android(安卓)中 View 炸裂特效的实现分析 《IT蓝豹》
  7. 第八章 Libgdx输入处理(1)
  8. Android中invalidate()和postInvalidate() 的区别
  9. Android(安卓)Studio编译输出apk文件修改文件名

随机推荐

  1. Android(安卓)ANR 分析流程
  2. Android WebView与Javascript交互
  3. Android 2.2 API demo
  4. Android jni调用第三方so库和.h文件
  5. Android手动创建和解析Json
  6. Android 中文API (94) —— MediaControlle
  7. Android 字体修改
  8. ubuntu下Qt之android环境配置以及一些常
  9. android 日志打印器 LogUtil
  10. Android 下拉刷新控件的使用