如何处理 Gradle 本地依赖项之间的优先级



我目前在基于 Gradle 的 Android 项目中遇到了问题。我的项目有两个依赖项:

compile project(':Library:lib1')
compile files('libs/libGoogleAnalyticsServices.jar')

libGoogleAnalyticsServices是Google Analytics的v3版本。

问题是lib1是一个旧库,依赖于Google Analytics的V2版本:

compile files('libs/libGoogleAnalyticsV2.jar')

最后,两个 jar 之间存在冲突(即使 v2 应该只对 lib1 可见),并且 v2 正在接管 v3。在我的主模块中,我缺少参考。

所以有两个问题:

  • 为什么从主模块中可以看到 v2?
  • 为什么 v2 会接管 v3?

理想情况下,我希望 v2 仅在我的lib1中可见,而 v3 仅在我的主模块中可见。

知道吗?

我对Android了解不多,但我认为情况与标准Java应用程序相同:每个应用程序只能使用特定库的一个版本,并且必须确保应用程序附带的所有代码都与该版本兼容。

最新更新