You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova构建安卓包提示Build Tools 31.0.0损坏,修改配置不生效如何解决

问题描述

我在尝试构建安卓应用时,一直无法在Cordova中正确设置Build Tools版本。此前我在Android Studio中遇到相同问题时,参照网上教程完成了修复,我认为可以将相同的修复思路应用到Cordova构建场景中,因此尝试在build.gradle文件中复现修复方案,修改了project.ext配置段如下:

project.ext {
  defaultBuildToolsVersion="30.0.3" //String
  defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1
  defaultTargetSdkVersion=29 //Integer - We ALWAYS target the latest by default
  defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default
}

但修改后重新构建仍然使用31.0.0版本,报出如下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
Command failed with exit code 1: C:\Users\adam\OneDrive\Documents\Projects\Diabetes App\Bolus-Calculator\platforms\android\gradlew cdvBuildDebug -b C:\Users\adam\OneDrive\Documents\Projects\Diabetes App\Bolus-Calculator\platforms\android\build.gradle

请问有没有方法可以在Cordova中复现该修复方案?


解决方案

你手动修改platforms/android目录下的build.gradle不生效,是因为Cordova自动生成的platform目录文件会在重新添加平台、安装部分插件时被覆盖,修改不会持久化,按照以下方法操作即可固定Build Tools版本:

方法1:通过config.xml配置(官方推荐)

直接在项目根目录的config.xml的<platform name="android">节点内添加以下配置:

<preference name="android-buildToolsVersion" value="30.0.3" />
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="29" />
<preference name="android-compileSdkVersion" value="29" />

配置完成后执行以下命令重新生成安卓平台配置:

cordova platform remove android
cordova platform add android

重新构建即可自动使用指定的30.0.3版本Build Tools。

方法2:通过gradle扩展配置强制覆盖

如果方法1不生效,一般是部分第三方插件强制指定了更高的Build Tools版本,可通过gradle扩展配置强制全局版本:

  1. 在项目根目录新建build-extras.gradle文件,写入以下内容:
ext {
    buildToolsVersion = "30.0.3"
    compileSdkVersion = 29
    targetSdkVersion = 29
    minSdkVersion = 22
}
  1. 把该文件放入platforms/android目录下,再执行构建即可。如果要避免每次重新加平台都手动复制,可以写一个简单的Cordova钩子脚本,在构建前自动复制该文件到对应目录。

临时应急方案

如果需要快速修复构建,直接打开Android SDK Manager,找到Build Tools 31.0.0版本卸载即可,构建时会自动匹配你本地已安装的30.0.3版本。


内容的提问来源于stack exchange,提问作者Adam Films

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 07:57:03