如何在Android Studio 3.0.1中更改Build Tools版本及解决版本报错
解决Android Studio 3.0.1升级后Build Tools版本匹配问题
嗨,我来帮你捋清楚这个问题~
首先得明白Android Studio 3.0及以后的一个重要变化:如果你不在build.gradle里手动指定buildToolsVersion,系统会自动匹配与你compileSdkVersion对应的Build Tools版本。那为什么明明你装了API27,它还找26版本呢?大概率是这几个原因:
可能的原因&解决步骤
Gradle插件版本不匹配
先检查项目根目录下的build.gradle文件,里面的Android Gradle插件版本得和你的AS3.0.1对应。AS3.0.1对应的插件版本应该是com.android.tools.build:gradle:3.0.1,如果你的版本不对,改成这个:buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' } }项目中其他模块/依赖指定了旧版本
- 看看你的项目有没有其他library模块,打开它们的
build.gradle,如果里面写了buildToolsVersion "26.x.x",要么删掉这个字段让它自动匹配,要么改成和API27对应的版本(比如27.0.3)。 - 第三方依赖也可能偷偷引用旧的Build Tools版本,你可以用gradle命令分析依赖:
- Mac/Linux终端执行:
./gradlew app:dependencies - Windows命令行执行:
gradlew app:dependencies
输出里找有没有引用26版本的依赖,要是有,优先把这个依赖升级到支持API27的版本;如果没法升级,就在你的app模块build.gradle里手动加上buildToolsVersion "27.0.3",强制指定版本覆盖自动匹配。
- Mac/Linux终端执行:
- 看看你的项目有没有其他library模块,打开它们的
缓存问题
有时候AS的缓存会抽风,点击顶部菜单栏的File -> Invalidate Caches / Restart,选择Invalidate and Restart,重启后再试试编译。确认compileSdkVersion设置
最后再检查一遍你的app模块build.gradle,确保compileSdkVersion和targetSdkVersion都是27:android { compileSdkVersion 27 defaultConfig { applicationId "com.your.app" minSdkVersion xxx targetSdkVersion 27 versionCode xxx versionName "xxx" } // 这里如果没写buildToolsVersion,系统会自动匹配27对应的版本 }
内容的提问来源于stack exchange,提问作者lovecode
相关产品推荐
相关产品推荐

