У меня странное поведение при использовании модулей в gradle с Android Studio... это сложно объяснить, поэтому я думаю, что лучше привести пример
Допустим, мое приложение имеет два модуля
:bar:foo
foo использует play-services-location, поэтому я импортирую его в build.gradle. foo компилируется нормально.
bar использует foo, поэтому в build.gradle папки бара я делаю:api project(path: ':foo')bar также использует play-services-location, но поскольку bar импортирует foo, я думаю, что он должен транзитивно импортировать play-services-location, однако, если я не укажу явно doimplementation "com.google.android.gms:play-services-location:$location_library_version"
бар не компилируется
Так я что-то упускаю? Разве он не должен автоматически импортировать все зависимости зависимостей... чтобы любая транзитивная зависимость была готова, и мне не нужно было ее повторно импортировать?
Вы должны использовать «api» (а не «реализация») для «google-play-location» в «foo», чтобы от него зависел «bar», который использует «foo». И если нет других модулей, которые зависят от 'bar', то лучше указать 'implementation foo' в 'bar', а не 'api'