如何获取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
相关产品推荐
相关产品推荐

