2016-12-25 3 views
0

Я застрял со странной проблемой. У меня есть проект студии Android, который содержит основной модуль и другой библиотечный модуль, который является файловой системой sdk. Модуль библиотеки использует библиотеку android-suport v4, которая является старой версией. Я хочу использовать более новую версию библиотеки поддержки v4 для andorid для моего основного модуля. Но Android Studio по умолчанию собирает библиотеку facebook sdk v4 во время компиляции, даже когда я определяю ее как зависимость в модуле build.gradle. Насколько это кажется неправильным поведением Android Studio, как я могу сказать AS, чтобы выбрать мою новую библиотеку вместо старой facebook.Как заставить Android Studio использовать более новую версию библиотеки вместо старой версии из другого модуля?

ответ

1

Проблема заключается в том, что модуль библиотеки сначала определяет свои зависимости, поэтому у вас есть библиотека поддержки Android из этого модуля с помощью транзитивной зависимости (см. https://docs.gradle.org/current/userguide/dependency_management.html#sub:transitive_dependency_management). Возможным решением этого является то, чтобы сказать, что gradle исключает конкретные транзитивные зависимости, поэтому будет разрешен и выбран только тот, который вы конкретно укажете в своей структуре градиента. См. https://docs.gradle.org/current/userguide/dependency_management.html#sub:exclude_transitive_dependencies о руководящих принципах, как это сделать.