Android Studio已安装API 26/27 SDK,为何未出现在build-tools文件夹?
问题分析与解决方法
嘿,这个问题我之前折腾cordova打包时也碰到过,核心是你混淆了SDK Platform(API版本)和Android SDK Build-Tools这两个不同的东西,咱们一步步来解决:
为什么会出现这个差异?
Android Studio里显示"已安装API 26/27",指的是对应Android系统版本的SDK Platform(也就是系统API库,用来编译适配对应版本的应用);而你在/android/sdk/build-tools里找的是Build-Tools——这是一套编译、打包、签名APK的工具集,和API版本是分开管理的,所以即使API 26/27安装了,对应的Build-Tools版本没装的话,文件夹里自然看不到。
而cordova打包时,除了需要targetSdkVersion对应的SDK Platform,还需要匹配版本的Build-Tools来完成编译打包流程,所以咱们得把对应的Build-Tools装上。
具体解决步骤
方法一:通过Android Studio安装
- 打开Android Studio,顶部菜单栏选择
Tools > SDK Manager - 切换到 SDK Tools 标签页,勾选右下角的「Show Package Details」(显示详细包)
- 找到「Android SDK Build-Tools」并展开,你会看到所有可选的版本,勾选26.x.x和27.x.x系列的最新子版本(比如27.0.3,建议选每个大版本里的最新版,兼容性更好)
- 点击「Apply」,等待安装完成即可
安装好之后,再去/android/sdk/build-tools文件夹里,就能看到26和27开头的版本文件夹了。
方法二:通过命令行安装
如果你习惯用终端操作,可以直接用Android SDK自带的sdkmanager命令安装:
# 安装27.0.3版本的Build-Tools,替换成你需要的版本号即可 sdkmanager "build-tools;27.0.3" # 可以同时安装多个版本 sdkmanager "build-tools;26.0.3" "build-tools;27.0.3"
额外注意事项
为了让cordova更顺畅地识别配置,建议在你的cordova项目根目录的config.xml里也明确指定targetSdkVersion:
<preference name="android-targetSdkVersion" value="27" />
这样cordova会自动匹配对应的SDK依赖,减少打包时的版本匹配问题。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

