看来我有Picasso库2.4.0,但twitter也使用该库的2.3.2版本.我的问题是… 2.3.2库是否随新版本一起下载?还是仅下载2.4.0并由Twitter使用?我应该排除2.3.2一个,然后twitter会自动使用2.4.0吗?这样安全吗?较新的版本可能与twitter库不兼容,不是吗?
在这种情况下,我感到困惑.我应该排除哪个库(如果可以排除的话).
gradle -q app:dependencyInsight --dependency picasso --configuration compile
com.squareup.picasso:picasso:2.4.0 (conflict resolution)
\--- compile
com.squareup.picasso:picasso:2.3.2 -> 2.4.0
\--- com.twitter.sdk.android:tweet-ui:1.1.0
+--- compile
\--- com.twitter.sdk.android:twitter:1.1.1
\--- compile
(*) - dependencies omitted (listed previously)
解决方法:
Gradle offers the following conflict resolution strategies:
Newest: The newest version of the dependency is used. This is Gradle’s default strategy, and is often an appropriate choice as long as versions are backwards-compatible.
Fail: A version conflict results in a build failure. This strategy requires all version conflicts to be resolved explicitly in the build script. See ResolutionStrategy for details on how to explicitly choose a particular version.
因此Gradle将使用Picasso 2.4.0管理依赖项.
这会是一个问题吗?可能吧.如果Twitter使用的方法和/或签名已从2.3.x更改为2.4,则会遇到问题.如果它们彼此向后兼容,您将不会有任何问题.
现在,我确实看到Twitter SDK实际上已将其Picasso库升级到2.5.2(最新版本).如果您的项目导入了毕加索,那么您也可以对其进行更新(也许应该).如果它是另一个模块中的依赖项,那么您也可以更新该模块.
另一个选择是将毕加索降级到2.3.2或使用ResolutionStrategy使用较低版本.除非您必须,否则我不建议您这样做.
标签:android-gradle,build-gradle,gradle,android
来源: https://codeday.me/bug/20191026/1936524.html