Android Studio - Реализация Gradle (...) {exclude ...} не работает (Невозможно исключить группу из зависимости) - PullRequest
2 голосов
/ 12 января 2020

Я добавил две нижеуказанные библиотеки (ExoPlayer и GeckoView) в мое Android приложение в Android Studio:

dependencies {
    ...
    implementation 'com.google.android.exoplayer:exoplayer:2.11.1'
    implementation ('org.mozilla.geckoview:geckoview-beta:73.0.20200109090448')
    ...
}

Когда я начал строить проект, я понял, что у этих библиотек есть конфликты вместе (Gradle Syn c был успешным):

Duplicate class com.google.android.exoplayer2.BaseRenderer found in modules jetified-exoplayer-core-2.11.1-runtime.jar (com.google.android.exoplayer:exoplayer-core:2.11.1) and jetified-geckoview-beta-73.0.2020...-runtime.jar (org.mozilla.geckoview:geckoview-beta:73.0.202001...)
Duplicate class com.google.android.exoplayer2.... found in modules jetified-exoplayer-core-2.11.1-runtime.jar (com.google.android.exoplayer:exoplayer-core:2.11.1) and jetified-geckoview-beta-73.0.2020...-runtime.jar (org.mozilla.geckoview:geckoview-beta:73.0.2020...)

Я получил так много строк ошибок, как указано выше. Поэтому я решил исключить группу ExoPlayer из GeckoView (потому что она у меня уже есть):

...
implementation ('org.mozilla.geckoview:geckoview-beta:73.0.20200109090448') {
    exclude group: 'com.google.android.exoplayer2', module: 'jetified-geckoview-beta-73.0.20200109090448-runtime.jar'
}
...

Я снова синхронизировался (Syn c снова прошел успешно) и начал сборку, но без последствий, ошибки возникли снова.

Что мне делать?

1 Ответ

0 голосов
/ 13 января 2020

Из повторяющегося сообщения проблема заключается в том, что классы находятся в geckoview-beta самой jar-среде выполнения и в exoplayer jar.

Таким образом, это не конфликт переходных процессов, а прямой конфликт между geckoview-beta и exoplayer.

Вам придется решить эту проблему, удалив одну из двух библиотек или найдя версию geckoview-beta который не встраивает классы в пакет com.google.android.exoplayer2.

...