gradle force在第三方库上构建工具版本?

时间:2014-06-30 15:48:12

标签: android gradle android-gradle

如何强制库使用sdk构建工具19.1.0或更高版本,而不需要分配/手动编辑库的build.gradle文件?

使用库时我一直收到此错误...

Error:The SDK Build Tools revision (.......) is too low for project ':somelibrary'. Minimum required is 19.1.0

2 个答案:

答案 0 :(得分:42)

缺乏简单的方法是我无法理解的。很多人使用他们不拥有的图书馆项目,必须与詹金斯建立或有其他理由不接触他们,并且不想将它们分开供个人使用。

无论如何,我找到了解决方案here

将此处复制以防万一:

在你的root build.gradle中添加

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
            }
        }
    }
}

这会将compileSdkVersion和buildToolsVersion应用于您拥有的任何Android模块。

在您的主项目的build.gradle中,将依赖项更改为:

compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

基本上,您只需定义一次,就可以在任何地方使用。

干杯。

答案 1 :(得分:3)

如果您只想在compileSdkVersion值过低时更新buildToolsVersionbuildToolsVersion值,您可以先比较子项目的版本号,只在需要时更新。这样,您可以对其他项目进行最少的更改,并且可以减少检查是否出错的项目。

所以,假设Android Studio告诉您需要25.0.0的最小构建工具版本,然后在根build.gradle中,这里是如何检查每个子项目的{{1}只有当它小于buildToolsVersion时才会改变它:

25.0.0