gpt4 book ai didi

gradle - Gradle依赖库由另一个库更新

转载 作者:行者123 更新时间:2023-12-03 03:46:05 25 4
gpt4 key购买 nike

我的毕业证书一段时间以来一直依赖于(令人惊叹的)Android库Picasso。始终将其设置为2.5.2版

implementation 'com.squareup.picasso:picasso:2.5.2'

我最近将所有Firebase库从相对较旧的版本更新到了最新版本。这时发生了奇怪的事情。

我的毕加索方法调用开始出错
Picasso.with(context)

我从这篇SO文章中了解到的是对毕加索的更改。
cannot find symbol method with() using picasso library android,我需要更改为
Picasso.get()

好的,没什么大不了的,但这让我感到奇怪。显然,Firebase使用的是Picasso的最新版本,并且正在使我的项目也使用最新的版本。我的问题是为什么我的本地gradle文件被忽略,而Picasso的较新版本默认为?

最佳答案

让我烦恼的是:由于您声明了一个特定版本,因此该要求不灵活。要允许更新的版本(如果有),需要+声明。我的猜测是,更新后另一个依赖项也依赖于毕加索。当Gradle被赋予冗余依赖时,它将选择较新的版本。

如果我理解正确的话,这与您所说的一致。如果Firebase使用较新的Picasso版本,因为它需要该版本,那么Gradle会提供两个版本供您选择。这将始终导致选择较新的版本。至少这是默认行为afaik。

在我看来,您已经知道Firebase使用了毕加索。但是,如果要查看依赖关系来自何处,可以查看构建扫描:
gradle build --scan
https://scans.gradle.com/?_ga=2.166196030.1236003146.1565212874-222812074.1565212874

更高级的依赖管理:

1)在依赖冲突上设置Gradle行为:

https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

2)声明版本约束(请参见丰富版本声明):

https://docs.gradle.org/current/userguide/declaring_dependencies.html

关于gradle - Gradle依赖库由另一个库更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57397770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com