Конфликт версий библиотеки между приложением и сторонней библиотекой android

#android #gradle #android-library #android-version

Вопрос:

Я использую библиотеку Android версии 4.0.0, та же библиотека, которая используется другой сторонней библиотекой, имеет версию 5.0.0. Конфликт здесь заключается в том, что я использую как библиотеку Android, так и стороннюю библиотеку. Библиотека Android, которая использовалась в сторонней библиотеке, имеет другую версию, и я использовал другую версию.

Третья сторона использует более высокую версию, тогда как я использовал более низкую версию.

Есть ли какой-либо способ использовать две разные версии одной и той же библиотеки: одну версию в приложении и другую версию в сторонней библиотеке?

Ответ №1:

Иногда есть способы исключить зависимости библиотеки из проектов, чтобы вы могли переопределить, какая версия используется. Однако вы должны иметь в виду, что если что-то имеет реализацию, специфичную для более низкой (или более высокой) версии библиотеки, то это не сработает.

И пример того, как вы можете исключить модуль из зависимости, выглядит следующим образом:

 dependencies {
    implementation("some-library") {
        exclude(group = "com.example.imgtools", module = "native")
    }
} 

Этот пример взят из документации Google здесь: https://developer.android.com/studio/build/dependencies#exclude_dependencies

В примере «some-library» будет сторонней библиотекой, которую вы используете, а «com.example.imgtools» — это зависимость, которую имеют обе библиотеки, имеющие конфликтующие версии.