我想在我的应用中添加了Facebook
和Twitter
个依赖项。
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将如何在同一个库的不同版本之间进行管理。
答案 0 :(得分:2)
你不能在apk中拥有相同库的不同版本。
正如您所提到的,默认情况下,Gradle会将最新的一个放入构建中。如果要指定应在项目中使用的库的具体版本,可以添加直接compile
(或implementation
/ api
for Android Gradle Plugin v3 +)语句获得一个所需的版本。
此外,您可以使用特殊语法强制版本,但以后可能会导致一些问题。您可以在this post
中找到有关版本冲突解决方案的更多信息