Azure DevOps Android构建失败:无法找到com.shopify:livedata-ktx:2.0.2
Azure DevOps流水线突然无法找到依赖的排查思路
我的应用托管在Azure DevOps并配置了构建流水线,过去一年运行正常——每次合并到master分支都会构建.aab文件并发布到AppCenter和PlayStore。未做任何配置变更的情况下,流水线突然出现无法找到com.shopify:livedata-ktx:2.0.2依赖的错误,但本地构建完全正常(已清理Android Studio缓存尝试复现失败,但未成功)。我可以通过删除依赖并提取所用方法解决问题,但希望查明故障原因。
相关配置信息
流水线Gradle YAML配置
variables: wrapperScript: 'gradlew' steps: - task: Gradle@2 displayName: 'gradlew bundleRelease bundleStaging bundleDev' inputs: gradleWrapperFile: '$(Parameters.wrapperScript)' options: ' -x lint -s --stacktrace' tasks: 'bundleRelease bundleStaging bundleDev' publishJUnitResults: false sonarQubeRunAnalysis: true sonarQubeGradlePluginVersion: 3.2.0
应用模块build.gradle(:app)依赖配置
implementation 'com.shopify:livedata-ktx:2.0.2'
项目根目录build.gradle配置
buildscript { repositories { google() mavenCentral() gradlePluginPortal() } dependencies { classpath 'com.android.tools.build:gradle:8.5.1' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.21' classpath 'com.google.gms:google-services:4.4.0' classpath 'com.google.dagger:hilt-android-gradle-plugin:2.50' classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.7.6' } } allprojects { repositories { google() mavenCentral() gradlePluginPortal() mavenCentral() maven { url 'https://jitpack.io' } } }
排查思路
- 检查Azure DevOps代理的网络/仓库访问限制:本地能拉取但流水线失败,大概率是代理机器访问Maven Central(该依赖托管在此)时出现问题,比如新增防火墙规则、镜像源配置变更,或者代理池配置的私有镜像未同步该依赖。
- 验证依赖的仓库可用性:确认
com.shopify:livedata-ktx:2.0.2是否仍在Maven Central正常存在,避免流水线使用的镜像源出现同步延迟或失效。 - 清理流水线的Gradle缓存:Azure DevOps的Gradle任务可能使用了损坏或缺失的缓存依赖,尝试添加清理缓存步骤(如执行
./gradlew clean build --no-build-cache),或禁用缓存重新构建。 - 对比本地与流水线的环境差异:确认流水线代理的JDK版本、环境变量是否和本地一致,比如本地用JDK 17而流水线用JDK 11,可能引发依赖拉取的兼容性问题。
- 修正根目录仓库配置冗余:根目录
allprojects里重复配置了mavenCentral(),虽然不直接报错,但可能影响仓库解析顺序,尝试合并重复配置保持列表唯一。 - 获取详细依赖解析日志:在Gradle任务的
options中添加--info或--debug参数,查看具体是哪个仓库未找到依赖,或者拉取时的具体错误(如SSL证书问题、超时)。 - 确认依赖的仓库迁移情况:检查Shopify是否将该依赖迁移到了其他仓库,本地可能缓存了旧地址,而流水线需要从新地址拉取。
内容的提问来源于stack exchange,提问作者ViksaaSkool
相关产品推荐
相关产品推荐

