我有一个使用库A的应用程序,该库已转换为使用Gradle 4.5.1(来自3.5.1)进行构建。库A又取决于库B,库B也已转换为使用Gradle 4.5.1.。
现在尝试使用库A进行构建时,应用程序构建失败(它不直接包含对库B的依赖关系)。构建错误是针对库B中资源的资源未找到错误。
应用程序:
dependencies {
implementation('com.example:libraryA:version@aar') {
transitive = true
}
}
图书馆A:
dependencies {
implementation 'com.example:libraryB:version@aar'
}
如果我直接将库B包含在应用程序的依赖项中,则构建工作正常,但是我不想这样做,因为我不想在应用程序中指定库A的依赖项,因此我不会不想随着A使用的版本增加而不断更新库B的版本。
如果我使用compile
指令而不是implementation
,它也会建立,但是,我不想这样做,因为compile
将被淘汰。另外,使用api
似乎无法解决问题。
如何在无需指定库A依赖项的情况下使构建正常工作?
答案 0 :(得分:2)
使用api
代替implementation
:
api('com.example:libraryA:version@aar')