假设您有一个使用Android SDK 28和构建工具28的项目A28。
compileSdkVersion 28
buildToolsVersion '28.0.2'
该项目依赖于使用Android SDK 23和工具23.0.0的项目B23。
构建A28时,构建将失败。而不是得到有用的错误,我得到的是一堆文件(B23中的所有文件)都丢失了并且无法链接(因为它不是通过gradle编译的,但是没有任何迹象)。>
唯一可以暗示问题的是:
警告:指定的Android SDK Build Tools版本(23.0.0)为 被忽略,因为它低于最低支持的版本(28.0.3) Android Gradle插件3.2.1。 Android SDK Build Tools 28.0.3将 用过的。要取消显示此警告,请删除“ buildToolsVersion '23 .0.0'” 从您的build.gradle文件,作为每个版本的Android Gradle 插件现在具有构建工具的默认版本。
但这明确表示,gradle将使用28.0.3工具版本而不是23.0.0编译该项目(B23)。
如果我添加
subprojects {
afterEvaluate { project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 28
buildToolsVersion '28.0.2'
}
}
}
}
对我的build.gradle
进行操作,以便使用buildTools 28和sdk 28显式覆盖所有内容,构建成功。
答案 0 :(得分:1)
您可以从两个项目中完全删除buildToolsVersion
。这是因为将使用根据targetSdkVersion
的最新版本。甚至28.0.2
都低于Gradle插件28.0.3
的最低3.2.1
要求。