繁体   English   中英

如何在 Azure DevOps Pipelines 上指定 Android SDK Build Tools 版本

[英]How specify an Android SDK Build Tools version on Azure DevOps Pipelines

我在尝试在 Azure DevOps 中创建 Android CI/CD 时遇到了严重问题。 原来管道试图使用最新版本的 BuildTools 来构建 apk,但最新版本 (31.0.0) 似乎有问题。

我想强制 Azure 使用我已经测试过的版本 30.0.3 运行良好。

使用 BuildTools 31.0.0 的 Azure 日志

蔚蓝日志 31

使用 BuildTools 31.0.0 的本地日志

本地日志 31

使用 BuildTools 30.0.0 的本地日志

本地日志 30

我正在使用 Ionic 和cordova 来生成我的Android 项目,尽管cordova 文档说它支持cli 参数来强制构建工具版本。

例如: ionic cordova run android -- --gradleArg=-P cdvBuildToolsVersion=30

它仍然以始终使用cordovaLib模块中安装的最新版本的方式生成

build.gradle [应用模块]

// The value for android.buildToolsVersion.
    if (!project.hasProperty('cdvBuildToolsVersion')) {
        cdvBuildToolsVersion = null;
    }

...

compileSdkVersion cdvCompileSdkVersion
buildToolsVersion cdvBuildToolsVersion

build.gradle [cordovaLib 模块]

cdvCompileSdkVersion = privateHelpers.getProjectTarget()
cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()

...

compileSdkVersion cdvCompileSdkVersion
buildToolsVersion cdvBuildToolsVersion

我找到了一个临时解决方法,似乎对这种类型的情况有意义,如果将来有人遇到这种类型的问题,它可能会有用:

只需在管道中删除损坏的构建工具,在本例中为 31.0.0

- script: $ANDROID_HOME/tools/bin/sdkmanager --uninstall 'build-tools;31.0.0'
  displayName: 'Workaround'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM