Android Studio构建工具版本读取位置及版本适配问题求助
解决Build Tools版本缺失导致的构建失败问题
一、强制使用27.0.3版本的Build Tools
很简单,你只需要在app级的build.gradle文件里,给android代码块加上buildToolsVersion的显式配置,就能强制Android Studio使用你已安装的27.0.3版本,不会再去寻找缺失的26.0.2。修改后的代码示例如下:
android { compileSdkVersion 27 buildToolsVersion "27.0.3" // 新增这一行,指定目标Build Tools版本 defaultConfig { targetSdkVersion 27 // 你的其他默认配置... } // 其他android相关配置... }
保存文件后,点击AS右上角的「Sync Now」同步项目,之后构建应该就能正常运行了,完全不需要安装旧版本的Build Tools。
二、Android Studio读取Build Tools版本的逻辑
Android Studio(准确说是Android Gradle Plugin,AGP)读取Build Tools版本的优先级如下:
- 最高优先级:app级
build.gradle中显式声明的buildToolsVersion,只要配置了这一项,AGP就会严格使用指定的版本; - 自动匹配模式:如果没有显式指定,AGP会根据你设置的
compileSdkVersion,自动匹配对应大版本的Build Tools(比如compileSdkVersion 27就会找27.x.x系列的版本),并且优先选择SDK Manager中已安装的该系列最新版本; - AGP版本关联:项目根目录
build.gradle里的Android Gradle Plugin版本,也会影响默认匹配的Build Tools范围,不同版本的AGP对Build Tools的兼容性要求和默认选择逻辑略有差异。
你之前遇到的问题,就是因为没有显式配置buildToolsVersion,当compileSdkVersion是26时,AGP尝试寻找26.x.x的Build Tools,但你没有安装26.0.2,所以抛出了警告并导致构建失败。现在改成compileSdkVersion 27后,要么让AGP自动匹配你已有的27.0.3,要么手动指定更稳妥。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

