使用Android Gradle插件7.3.0+在Android库项目中传递Gradle依赖项

hgtggwj0  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(338)

我有一个库项目A,它对另一个库项目B具有依赖关系,如下所示:

api(libs.libraryB) { artifact { type = "aar" } }

我的应用程序依赖于库A:

api(libs.libraryA) {
    isTransitive = true
}

因此,依赖关系如下所示:

App <- Library A <- Library B

当库A和库B都在Android Gradle插件版本7.2.2上时,这一切都正常,但当其中一个更新到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}.

我已经查看了我的Maven 2存储库,工件在那里(这是库项目B -构建抱怨的是缺少:

旁注:如果AGP被更新,库项目A的构建和部署没有问题,失败的是可传递的依赖关系。
有什么问题吗?

更新2022-09-29根本原因不是AGP 7.3.0。而是我在更新的同时进行的“重构”......详细信息请参见已接受的答案。

ix0qys7i

ix0qys7i1#

这是转移注意力。
罪魁祸首:我尝试使用Gradle版本目录重写库A上的依赖项声明失败。
我曾尝试更改此语句(build.gradle.kts):

api("com.mycompany:library-b:1.0.0@aar") {
        isTransitive = true
}

转换为:
build.gradle.kts

api(libs.libraryB) {
    artifact {
        type = "aar"
        isTransitive = true
    }
}

libs.versions.toml.gradle:

libraryB = { module = "com.mycompany:library-b", version.ref = "1.0.0" }

这也不起作用:
build.gradle.kts

api(libs.libraryB) { isTransitive = true }

libs.versions.toml.gradle:

libraryB = { module = "com.mycompany:library-b", version.ref = "1.0.0@aar" }

相关问题