Несколько файлов dex определяют Lcom / android / volley / toolbox / Volley; - PullRequest
0 голосов
/ 02 июля 2018

Я получаю ошибку

"Несколько файлов dex определяют Lcom / android / volley / toolbox / Volley;

Можно ли использовать две библиотеки залпа, т.е. компилировать com.android.volley:volley:1.0.0 и dev.dworks.libs:volleyplus:+ в одном проекте?

1 Ответ

0 голосов
/ 02 июля 2018

Если у этих двух библиотек залпа разные имена пакетов, хорошо иметь обе в качестве зависимости. Но какова дополнительная ценность использования двух (одинаковых? Или похожих?) Библиотек? Почему бы не реорганизовать ваш проект, чтобы уменьшить ваши зависимости?

Решение для определения нескольких dex для определенного пакета и класса заключается в добавлении правильной опции упаковки. например

packagingOptions {
    pickFirst "anyFileWillDo"
    exclude "/secret-data/**"
}

По моему мнению, наличие дублированной зависимости от библиотеки на самом деле не является хорошей практикой, это может привести к некоторым неопределенностям в конечном двоичном файле. Поскольку опция pickFirst не является детерминированной при выборе класса из правильной версии библиотеки, она выберет только тот, который видит первым.

Пожалуйста, смотрите здесь: https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...