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

如何获取Azure DevOps Android构建修订号并通过BuildConfig在应用中显示?

嘿,这个需求其实挺常见的,核心就是把Azure DevOps的构建号注入到Android的BuildConfig里,然后在应用里调用就行,我给你一步步拆解:

步骤1:在Azure DevOps流水线传递构建号参数

首先得把Azure那边的构建号(就是你配置的$(date:yyyyMMdd)$(rev:.r),对应系统变量$(Build.BuildNumber))传递给Android的Gradle构建任务。

如果用YAML流水线

找到你的Gradle任务块,添加options参数传递构建号:

steps:
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'assembleRelease' # 换成你实际的构建任务,比如assembleDebug
    options: '-PazureBuildNumber=$(Build.BuildNumber)' # 关键:把构建号传给Gradle

如果用经典可视化编辑器

找到Gradle任务的「选项」输入框,填入-PazureBuildNumber=$(Build.BuildNumber)即可。

步骤2:在Android项目中生成BuildConfig字段

接下来在app模块的构建脚本里,把Gradle接收到的参数写入BuildConfig,这样代码里就能直接调用了。

Groovy版(build.gradle)

android {
    defaultConfig {
        // 保留你原有的其他配置(比如applicationId、minSdkVersion等)
        // 注入构建号到BuildConfig
        buildConfigField "String", "AZURE_BUILD_NUMBER", "\"${project.hasProperty('azureBuildNumber') ? project.azureBuildNumber : 'local-build'}\""
    }
}

这里加了个判断:如果是本地调试构建(没走Azure流水线),就显示local-build,避免参数缺失报错。

Kotlin DSL版(build.gradle.kts)

android {
    defaultConfig {
        // 保留原有配置
        buildConfigField(
            "String",
            "AZURE_BUILD_NUMBER",
            "\"${if (project.hasProperty("azureBuildNumber")) project.property("azureBuildNumber") else "local-build"}\""
        )
    }
}

注意字符串需要用双引号包裹,所以这里用转义的\"保证生成的BuildConfig里是合法的字符串类型。

步骤3:在调试菜单中显示构建号

现在BuildConfig.AZURE_BUILD_NUMBER已经有值了,直接在调试菜单的UI里调用就行。

示例1:用TextView显示(Kotlin)

// 在调试菜单的Activity或Fragment中
val buildNumberTv = findViewById<TextView>(R.id.tv_debug_build_number)
buildNumberTv.text = "Build Number: ${BuildConfig.AZURE_BUILD_NUMBER}"

示例2:在OptionsMenu中显示(Kotlin)

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.debug_menu, menu)
    val buildNumberMenuItem = menu.findItem(R.id.menu_item_build_number)
    buildNumberMenuItem.title = "Build: ${BuildConfig.AZURE_BUILD_NUMBER}"
    return true
}

Java版本参考

// TextView示例
TextView buildNumberTv = findViewById(R.id.tv_debug_build_number);
buildNumberTv.setText("Build Number: " + BuildConfig.AZURE_BUILD_NUMBER);
最后验证一下
  • 本地构建:运行app,调试菜单会显示local-build
  • Azure流水线构建:下载构建好的APK,打开调试菜单就能看到yyyyMMdd.r格式的构建号啦

内容的提问来源于stack exchange,提问作者Sergey Shustikov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:12:47