AGP 7.3.0+下Android库项目传递依赖构建失败问题
问题解决:AGP升级后传递依赖AAR触发构建错误
问题背景
库项目A通过以下配置依赖库项目B:
api(libs.libraryB) { artifact { type = "aar" } }
应用项目依赖库A的配置如下:
api(libs.libraryA) { isTransitive = true }
依赖关系链为:App <- Library A <- Library B
当库A、库B均使用Android Gradle Plugin(AGP)7.2.2时,构建流程完全正常。但只要将其中任意一个项目的AGP版本升级到7.3.0,就会触发如下构建错误:
> Failed to transform library-b-1.0.0 (com.mycompany:library-b:1.0.0) to match attributes {artifactType=android-aar-metadata, org.gradle.status=release}.
已完成排查:
- 确认Maven2仓库中存在库B的所有相关工件
- 单独升级AGP后,库A可正常构建并部署至仓库,仅在应用通过A传递依赖B的场景下出现失败
根因定位与修复方向
2022-09-29 更新:
经深入排查,问题根源并非AGP 7.3.0版本本身,而是升级AGP时同步进行的代码重构操作导致。常见的重构触发点包括:
- 重构过程中误修改了库B的Maven发布配置,导致
android-aar-metadata类型的工件缺失或元数据格式异常 - 调整模块结构时破坏了Gradle依赖传递的属性匹配规则
修复时需针对重构中的变更逐一回测,定位具体影响依赖传递的配置点后修正,确保AAR的元数据能被Gradle正确识别与转换。
内容的提问来源于stack exchange,提问作者Alix
相关产品推荐
相关产品推荐

