为何Flutter自动安装Android SDK Build-Tools 30.0.3?是否用指定版本?
Flutter自动安装旧版Build-Tools的原因及版本使用说明
一、为什么会自动安装Build-Tools 30.0.3?
- 第三方插件依赖:项目中引用的部分Flutter第三方pub包,其Android端代码可能仍依赖Build-Tools 30.0.3,构建时Gradle会自动拉取该依赖所需的工具版本。
- Flutter内置模块依赖:Flutter SDK本身的Android引擎模块或辅助构建模块,可能默认指定了该版本作为兼容依赖,即使主应用配置了更高版本,这些模块仍会触发旧版本的安装。
- Gradle插件隐性关联:当前使用的Android Gradle Plugin(AGP)版本,可能与Build-Tools 30.0.3存在隐性绑定逻辑,构建时会自动校验并安装该版本。
二、是否会使用Gradle中配置的34.0.0版本?
是的,只要你在主模块的build.gradle中明确配置了buildToolsVersion "34.0.0",你的应用主模块构建时会优先使用这个指定版本。自动安装的30.0.3仅用于满足其他依赖模块(如第三方插件、Flutter内置模块)的构建需求,不会覆盖你主应用的配置。
可选解决方案(避免自动安装旧版本)
- 检查并更新第三方插件:查看
pubspec.yaml中的依赖包,将依赖的插件更新到最新版本,多数新版插件会适配更高版本的Build-Tools。 - 统一配置全局Build-Tools版本:在项目根目录的
build.gradle中,通过subprojects块强制所有模块使用指定版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { buildToolsVersion "34.0.0" } } } }
- 确认Flutter SDK版本:确保你使用的Flutter SDK是较新版本,新版Flutter对高版本Build-Tools的兼容性更好,减少对旧版本的依赖。
内容的提问来源于stack exchange,提问作者under
相关产品推荐
相关产品推荐

