Я знаю, что с помощью gradle можно исключить определенные библиотеки из каждой зависимости:
Код: Выделить всё
compile('com.test:lib1:1.0.0') {
exclude group: 'com.android.support'
}
Есть ли лучший способ?
Чтение этого сообщения в блоге: https://www.devsbedevin.com/android-und ... conflicts/
Это предполагает:
Код: Выделить всё
configurations.all {
resolutionStrategy {
preferProjectModules()
}
}
Что мне делать, если мои зависимости зависят от разных версий библиотеки поддержки? В любом случае, описанном выше, я бы заставил сторонние библиотеки использовать конкретную версию библиотеки поддержки, с которой они не были созданы. Какую версию мне следует использовать? Последняя библиотека поддержки? Минимальная библиотека поддержки всех сторонних зависимостей?
Вот пример минимального файла градиента, показывающий включение сторонних зависимостей, каждая из которых зависит от собственной версии библиотеки поддержки.
Код: Выделить всё
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.example.app"
minSdkVersion 17
targetSdkVersion 25
}
}
configurations.all {
resolutionStrategy {
preferProjectModules()
}
}
dependencies {
compile 'com.android.support:support-v13:26.0.0'
compile 'com.test:lib1:1.0' // depends on support-v13:25.0.0
compile 'com.test:lib2:1.0' // depends on support-v13:25.2.0
compile 'com.test:lib3:1.0' // depends on support-v13:25.4.0
compile 'com.test:lib4:1.0' // depends on support-v13:26.0.0
}

Подробнее здесь: https://stackoverflow.com/questions/480 ... ith-gradle
Мобильная версия