我目前在基于 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应用程序相同:每个应用程序只能使用特定库的一个版本,并且必须确保应用程序附带的所有代码都与该版本兼容。