Azure DevOps ionic Android Build 错误“Build-tool 31.0.0 is missing DX at /usr/local/lib/android/sdk/bu

Posted

技术标签:

【中文标题】Azure DevOps ionic Android Build 错误“Build-tool 31.0.0 is missing DX at /usr/local/lib/android/sdk/build-tools/31.0.0/dx”【英文标题】:Azure DevOps ionic Android Build Error "Build-tool 31.0.0 is missing DX at /usr/local/lib/android/sdk/build-tools/31.0.0/dx" 【发布时间】:2021-10-04 21:46:24 【问题描述】:

我最近在尝试为 android 构建 apk 时遇到了 Azure CI 管道问题。

我收到以下错误:

Build-tool 31.0.0 在 /usr/local/lib/android/sdk/build-tools/31.0.0/dx 处缺少 DX

FAILURE:构建失败并出现异常。

出了什么问题: 无法确定任务 ':app:compileReleaseJavaWithJavac' 的依赖关系。

安装的构建工具版本 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】:

发生这种情况是因为 Android SDK Build Tools 31.0.0 中缺少 dx 文件并被 d8 文件替换。尝试通过以下方式修改 Android SDK Build Tools 31.0.0:

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

【讨论】:

是的,如果您在本地机器上进行构建,这是一个很好的解决方案。当您在 DevOps 管道上构建时,我提出的建议会有所帮助。 这是对我的修复。我不确定我是否了解 DevOps 管道解决方案,但能够进行本地构建肯定是任何良好开发流程的第一步。 啊,对不起@el07 你是对的。也许是因为cordova-android 9.0.0 放弃了 Travis CI,它总是会搜索最新的 Android 构建工具。同时cordova-android 8.1.0 仍在使用 Travis CI,默认情况下它将使用 Android Build Tools 28.0.3。 但是 Android SDK Build Tools 31.0.0 文件夹在哪里?请记住,Cordova 适用于对 Android、ios 等一无所知的网络开发人员。 这取决于您的设置@Distortum。如果您知道您的 Android SDK 位置,只需找到文件夹 build-tools/31.0.0。如果您不知道位置,请在 Android Studio 或环境设置中检查。

以上是关于Azure DevOps ionic Android Build 错误“Build-tool 31.0.0 is missing DX at /usr/local/lib/android/sdk/bu的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Azure DevOps Extension for Azure CLI 与 Azure DevOps Server 一起使用?

Azure DevOps系列Azure DevOps构建.NET EFCore应用程序

azure devops cloud 和 azure devops server 2019 之间的区别

如何从 Azure Devops 服务器迁移到 Azure Devops 服务中的现有组织

Tfs / Azure DevOps 客户端库合并 Azure DevOps 分支上的冲突解决

Azure DevOps 介绍