Использование обеих модификаций версий 1.9.0 и 2.0.0

Я пытаюсь использовать в своем приложении стороннюю библиотеку, которая обертывает Loggly (веб-сервис ведения журнала).

Я использовал во всем своем приложении Retrofit2, но все сторонние библиотеки, которые обертывают Loggly, используют старую версию Retrofit 1.9.0.

Теперь я продолжаю получать ClassNotFoundException от этих библиотек, потому что они пытаются получить доступ к классу, который существует только в Retrofit 1.9.0, а не в 2.0.0.

Я пытаюсь решить эту проблему простым способом - добавляя в свой проект как Retrofit 1.9.0, так и Retrofit 2.0.0, но, к сожалению, gradle, похоже, не поддерживает это.

Итак, проблема здесь в том, как добавить две разные версии одной и той же библиотеки в ваш файл build.gradle.


person Nativ    schedule 08.03.2016    source источник
comment
Странно, я использую оба, и, кажется, работает   -  person Smashing    schedule 08.03.2016
comment
Возможно, вам следует создать новый модуль для сервисов loggly и получить к нему доступ через интерфейсы. Это означает, что ваше основное приложение по-прежнему будет зависеть от модификации 2, а новый модуль с loggly будет иметь собственную сборку градиента с модификацией 1.   -  person Smashing    schedule 08.03.2016
comment
@ Разгром вашего второго комментария действительно потрясающий. Я бы принял это, если бы вы добавили это как ответ   -  person Nativ    schedule 08.03.2016
comment
Ну вот, рад, что смог помочь!   -  person Smashing    schedule 08.03.2016


Ответы (1)


Возможно, вам следует создать новый модуль для сервисов loggly и получить к нему доступ через интерфейсы. Это означает, что ваше основное приложение по-прежнему будет зависеть от модификации 2, а новый модуль с loggly будет иметь собственную сборку градиента с модификацией 1.

В нашем приложении мы используем структуру представления-домена (MVC). Это означает, что сеть находится в своем собственном модуле, что означает, что у нас может быть модуль модификации 1 и модификации 2, который имеет свои собственные реализации, интерфейсы и зависимости от градации, от которых он зависит. Затем уровень предметной области ссылается на эти модули.

Рад, что смог помочь!.

person Smashing    schedule 08.03.2016