Mar*_*ars 14 android gradle android-gradle-plugin
如何强制库使用sdk构建工具19.1.0或更高版本而不分支/手动编辑库的build.gradle文件?
我在使用库时不断收到此错误...
Error:The SDK Build Tools revision (.......) is too low for project ':somelibrary'. Minimum required is 19.1.0
Run Code Online (Sandbox Code Playgroud)
Sve*_*ver 47
缺乏简单的方法是我的理解.人吨使用不属于自己的图书馆项目,必须建立与詹金斯或有其他原因不能碰他们,不希望到餐桌他们供个人使用.
无论如何,我在这里找到了解决方案.
将它复制在这里以防万一:
在你的root build.gradle add中
ext {
compileSdkVersion = 20
buildToolsVersion = "20.0.0"
}
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将把compileSdkVersion和buildToolsVersion应用于你拥有的任何android模块.
在您的主项目的build.gradle中更改依赖关系:
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
Run Code Online (Sandbox Code Playgroud)
基本上你只是定义它们一次,可以在任何地方使用.
干杯.
如果仅在值太低时仅希望更新compileSdkVersion和buildToolsVersion值buildToolsVersion,则可以先比较子项目的版本号,然后仅在需要时更新。这样,您可以对其他项目进行最少的更改,并减少检查项目是否出错的项目。
因此,假设Android Studio告诉您您需要的最低构建工具版本25.0.0,然后在您的根目录中build.gradle,这是您检查每个子项目的方法,buildToolsVersion并且仅在小于以下子项目时才进行更改25.0.0:
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android") && VersionNumber.parse(project.property("android").buildToolsVersion) < VersionNumber.parse("25.0.0")) {
android {
compileSdkVersion 25
buildToolsVersion '25.0.0'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)