Как я могу избавиться от репозиториев библиотек отдельных модулей в модуле приложения? - PullRequest
0 голосов
/ 21 сентября 2018

Я в процессе модульности моего одномодульного приложения, но застрял в одной проблеме, с которой не могу справиться.У меня есть 2 модуля, давайте назовем их: app (модуль com.android.application) и: library (com.android.library).

Модуль: library имеет зависимость от другой библиотеки Android (Brightcove SDK дляплеер) и его build.gradle выглядит так:

repositories {
   maven { url 'http://repo.brightcove.com/releases' }
}
dependencies {
   ...
   implementation "com.brightcove.player:exoplayer2:6.3.1"
}

Мой: модуль приложения зависит только от: библиотечного модуля

dependencies {
   implementation (':library')
}

Но проблема в том, что во время синхронизации IDE жалуется мне

Error:Unable to resolve dependency for ':app@debug/compileClasspath': 
Could not resolve com.brightcove.player:exoplayer2:6.3.1.

И это разрешается только после добавления того же хранилища в модуль: app.Но я на самом деле не хочу ни дублировать репозитории для всех моих зависимостей aar из ': library' в ': app', ни хранить эти 'репозитории' в файле сборки верхнего уровня.

Как правильнообрабатывать такие ситуации в многомодульных приложениях для Android?

1 Ответ

0 голосов
/ 21 сентября 2018

Когда ваше приложение хочет получить доступ к третьей стороне, которая используется в вашей библиотеке, вы также должны добавить ее зависимость в ваше приложение build.gradle.Потому что между ними и третьей стороной нет никакой связи, подобной цепочке, которая видна только в вашей библиотеке.Итак, вы должны добавить это в приложение build.gradle:

dependencies {
     implementation "com.brightcove.player:exoplayer2:6.3.1"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...