我遇到了一个奇怪的问题。我有一个android工作室项目,其中包含主模块和另一个库模块,它是facebook sdk。库模块使用android-suport v4库,这是一个旧版本。我想为我的主模块使用更新版本的andorid support v4库。但是Android Studio默认在编译期间选择了facebook sdk v4库,即使我在我的模块build.gradle中将其定义为依赖项。尽管这似乎是Android Studio中不正确的行为,我怎么能告诉AS选择我的新库而不是旧的facebook。
答案 0 :(得分:1)
问题是库模块首先解析了它的依赖关系,所以你首先通过传递依赖来获得该模块的android-support库(参见https://docs.gradle.org/current/userguide/dependency_management.html#sub:transitive_dependency_management)。一个可能的解决方案是告诉gradle排除特定的传递依赖,因此只有你在gradle构建中明确提到的那个将被解析和选择。有关如何执行此操作的指南,请参阅https://docs.gradle.org/current/userguide/dependency_management.html#sub:exclude_transitive_dependencies。