android sdk最高版本,gradle for android 自动找当前环境当前最高版本的 sdk 和 build tools...

此文版权属于作者

0818b9ca8b590ca3270a3433284dd417.png所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!

文件 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.StackTraceUtils

int[] 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']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值