У меня есть следующий код в build.gradle в модуле приложения моего проекта Android
implementation('com.google.firebase:firebase-core:16.0.1', {
exclude group: 'com.android.support'
})
implementation('com.google.firebase:firebase-database:16.0.1', {
exclude group: 'com.android.support'
})
implementation('com.google.firebase:firebase-auth:16.0.1', {
exclude group: 'com.android.support'
})
implementation('com.google.firebase:firebase-crash:16.0.1', {
exclude group: 'com.android.support'
})
Все библиотеки Firebase содержат конфликтующую версию библиотеки поддержки Android, которую я использую, и поэтому мне нужно исключить ее, чтобы предотвратить предупреждение о сборке
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 26.1.0. Examples include com.android.support:animated-vector-drawable:27.1.1 and com.android.support:support-media-compat:26.1.0 less... (Ctrl+F1)
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).
Есть ли способ, которым я могу сгруппировать эти операторы реализации вместе, поэтому мне нужно написать только один оператор исключения?
EDIT
Мое конкретное решение, основанное на ответе Криса
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.android.support') {
details.useVersion '27.1.1'
}
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.1'
implementation 'com.google.firebase:firebase-crash:16.0.1'
}