Gradle如何在gradle树中选择同一个库的多个版本?

时间:2017-11-21 19:26:04

标签: android performance android-layout android-fragments gradle

我想在我的应用中添加了FacebookTwitter个依赖项。

  

com.facebook.android:facebook-android-sdk:4.22.1

     

com.twitter.sdk.android:twitter:2.1.0

当我看到Gradle树时,他们提出了许多其他传递依赖。

现在如果Facebook使用com.android.support:support-annotations:24.1.1而Twitter使用com.android.support:support-annotations:25.0.3

然后使用哪个版本的gradle。

在gradle树中,它在较旧版本的依赖项前面显示->。我了解到这意味着gradle将使用更新版本,并且不会使用旧版本。

但这可能是一个问题,因为有些库意味着在特定版本上运行,我遇到了这个问题。

article中的一个中,我发现npm如何管理这些依赖项冲突,但我仍然不确定gradle将如何在同一个库的不同版本之间进行管理。

1 个答案:

答案 0 :(得分:2)

你不能在apk中拥有相同库的不同版本。

正如您所提到的,默认情况下,Gradle会将最新的一个放入构建中。如果要指定应在项目中使用的库的具体版本,可以添加直接compile(或implementation / api for Android Gradle Plugin v3 +)语句获得一个所需的版本。

此外,您可以使用特殊语法强制版本,但以后可能会导致一些问题。您可以在this post

中找到有关版本冲突解决方案的更多信息