Если у этих двух библиотек залпа разные имена пакетов, хорошо иметь обе в качестве зависимости.
Но какова дополнительная ценность использования двух (одинаковых? Или похожих?) Библиотек? Почему бы не реорганизовать ваш проект, чтобы уменьшить ваши зависимости?
Решение для определения нескольких dex для определенного пакета и класса заключается в добавлении правильной опции упаковки. например
packagingOptions {
pickFirst "anyFileWillDo"
exclude "/secret-data/**"
}
По моему мнению, наличие дублированной зависимости от библиотеки на самом деле не является хорошей практикой, это может привести к некоторым неопределенностям в конечном двоичном файле. Поскольку опция pickFirst не является детерминированной при выборе класса из правильной версии библиотеки, она выберет только тот, который видит первым.
Пожалуйста, смотрите здесь: https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html