Azure DevOps ionic Android构建错误 "在 /usr/local/lib/android/sdk/build-tools/31.0.0/dx 处缺少 Build-tool 31.0.0"

6

最近我在尝试为Android构建apk时,在我的Azure CI流水线中遇到了问题。

我遇到了以下错误:

在 /usr/local/lib/android/sdk/build-tools/31.0.0/dx 处缺少构建工具 31.0.0 的 DX

失败:构建出现异常。

  • 出现了什么问题: 无法确定任务“:app:compileReleaseJavaWithJavac”的依赖项。

已安装的 Build Tools 修改版 31.0.0 已损坏。请使用 SDK 管理器删除并重新安装。

解决方法: 当我将 package.json 文件中的 "cordova-android" 版本从 "9.0.0" 更改为 "8.1.0" 时,我找到了一个解决方法,或者您可以使用 "ionic cordova add andorid@8.1.0" 而不是 "ionic cordova add andorid" 。

希望这可以帮到你。

1个回答

15

这是因为Android SDK Build Tools 31.0.0中缺失了dx文件,而被d8文件所替代。请尝试通过以下方式修改Android SDK Build Tools 31.0.0:

  1. 在 Android SDK Build Tools 31.0.0 文件夹中(例如:C:\Users\Me\AppData\Local\Android\Sdk\build-tools\31.0.0),创建一个 d8.bat 的副本并将其重命名为 dx.bat
  2. 在 lib 文件夹中,创建一个 d8.jar 的副本并将其重命名为 dx.jar

1
是的,如果您正在本地机器上进行构建,则这是一个不错的解决方案。我提出的这个方案可以帮助您在DevOps管道上构建时使用。 - el07
这对我来说是解决方案。虽然我不确定我理解DevOps管道解决方案,但能够进行本地构建肯定是任何良好开发流程中的第一步。 - iGanja
1
啊,对不起 @el07,您是正确的。可能是因为 cordova-android 9.0.0 放弃了 Travis CI,它将始终搜索最新的 Android Build Tools。同时,cordova-android 8.1.0 仍在使用 Travis CI,并且默认情况下将使用 Android Build Tools 28.0.3。 - diazwijaya
但是Android SDK Build Tools 31.0.0文件夹在哪里呢?请记住,Cordova是为不了解Android、iOS等内容的Web开发人员设计的。 - Steve
这取决于您的设置@Distortum。如果您知道您的Android SDK位置,只需找到文件夹build-tools/31.0.0。如果您不知道位置,请在Android Studio或环境设置中检查它。 - diazwijaya
另一个解决方法是降级到Android SDK Build Tools 30.0.3。 - SuprMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接