J'ai un tas de tiers libs que je inclure dans mon application de base. Je ne peux pas contrôler la bibliothèque de prise en charge ceux de la 3e partie les modules. Il est difficile d'avoir la même version de l'android support library dans mon application.
Je sais à l'aide de gradle quand je peux exclure certaines bibliothèques de chaque dépendance:
compile('com.test:lib1:1.0.0') {
exclude group: 'com.android.support'
}
Cependant, il ya une tonne de bibliothèques de prise en charge et à l'exclusion de tous pour chacun de mes 3e partie des bibliothèques semble exagéré.
Est-il un meilleur moyen?
La lecture de ce post de blog: https://www.devsbedevin.net/android-understanding-gradle-dependencies-and-resolving-conflicts/
Elle suggère:
configurations.all {
resolutionStrategy {
preferProjectModules()
}
}
Toutefois, lorsque l'aide que je reçois toujours un message d'avertissement dans Android Studio, dans ma gradle fichier qu'il existe de multiples versions de la bibliothèque de prise en charge détectée.
Que dois-je faire si mon dépendances dépendent de différentes versions de la bibliothèque de prise en charge? Dans les deux cas ci-dessus, je serais forcer la 3ème partie les bibliothèques à utiliser une version spécifique de la bibliothèque de prise en charge qu'ils n'étaient pas construire avec. Quelle version dois-je utiliser? Dernière bibliothèque de prise en charge? Min bibliothèque de prise en charge de tous les 3ème partie des dépendances?
Ici, c'est un minimum gradle fichier exemple montrant tirant dans la 3ème partie des dépendances que chacun dépendent de leur propre version de la bibliothèque de prise en charge.
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
}
Android studio donne l'avertissement suivant: