Après la mise à jour vers Android Studio 2.3, j'ai reçu ce message d'erreur. Je sais que c'est juste un indice car l'application fonctionne normalement, mais c'est vraiment étrange.
Toutes les bibliothèques com.android.support doivent utiliser exactement la même spécification de version (le mélange de versions peut entraîner des plantages d'exécution). Trouvé les versions 25.1.1, 24.0.0. Les exemples incluent com.android.support:animated-vector-drawable:25.1.1 et com.android.support:mediarouter-v7:24.0.0
mon gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
android
build.gradle
humazed
la source
la source
Réponses:
Vous pouvez résoudre ce problème avec l'une des solutions suivantes:
Mise à jour:
À partir d'Android studio 3.0, cela devient beaucoup plus facile car il affiche maintenant un indice plus utile, nous n'avons donc qu'à suivre cet indice.
par exemple:
Solution:
ajoutez explicitement la bibliothèque avec l'ancienne version mais avec un nouveau numéro de version.
dans mon cas
com.android.support:customtabs:26.1.0
, je dois donc ajouter:ie: Prenez la bibliothèque du deuxième élément et implémentez-la avec le numéro de version du premier.
Remarque: n'oubliez pas d'appuyer sur sync maintenant pour que gradle puisse reconstruire le graphique des dépendances et voir s'il y a plus de conflits.
Explication:
vous pouvez être confus par le message d'erreur car n'utilisez pas
customtabs
alors comment j'ai un conflit !!eh bien .. vous ne l'avez pas utilisé directement mais une de vos bibliothèques utilise une ancienne version de
customtabs
interne, vous devez donc la demander directement.si vous êtes curieux de savoir laquelle de vos bibliothèques est responsable de l'ancienne version et que vous demandez peut-être à l'auteur de mettre à jour sa bibliothèque, exécutez un rapport de dépendance Gradle, consultez l'ancienne réponse pour savoir comment.
Notez ceci
Ancienne réponse:
inspiré par la réponse de CommonsWare :
Exécutez un rapport de dépendance Gradle pour voir votre arborescence complète des dépendances.
À partir de là, vous verrez laquelle de vos bibliothèques demande une version différente des bibliothèques de support Android. Pour tout ce qu'il demande, vous pouvez le demander directement avec la version 25.2.0 ou utiliser les autres approches de résolution de conflits de Gradle pour obtenir les mêmes versions.
Mise à jour:
Depuis la version du plugin gradle: 3.0
compile
a été remplacé parimplementation
ouapi
voyez cette réponse pour la différence.utilisez donc à la place:
ou pour windows cmd:
et recherchez la version en conflit.
Pour moi, l'erreur a disparu après la suppression
com.google.android.gms:play-services:10.2.0
Et n'incluez
com.google.android.gms:play-services-location:10.2.0
etcom.google.android.gms:play-services-maps:10.2.0
comme ce sont les deux seuls services de jeu que j'utilise.Je pense que cela
gms:play-services
dépend de certains anciens composants de la bibliothèque de support, nous devons donc les ajouter explicitement nous-mêmes.pour AS 3.0 un plus ancien.
Courir:
Exemple:
si quelqu'un connaît un meilleur moyen dans le nouveau plugin gradle, faites le moi savoir.
la source
com.google.android.gms:play-services:10.2.0
prend en charge le SDK 14 et supérieur, si vous souhaitez utiliser ci-dessous le SDK 14, vous devez utiliser la version10.0.1
mentionnée dans stackoverflow.com/a/42315590/6248491examples include
texte du message d'erreur montre des exemples réels de votre propre projet et non de vagues exemples généraux du type de problème. Prenez la bibliothèque du deuxième élément et implémentez-la avec le numéro de version du premier.project/.idea/libraries
dossier de votre système de fichiers et voyez quelles bibliothèques sont différentes.build.gradle
fichier.Par exemple:
la source
Pour tous les cas, pas seulement pour ces versions ou bibliothèques:
Faites attention à la petite fenêtre d'information qui dit quelque chose sur l'erreur, elle indique les exemples que vous devez modifier et ajouter .
Dans ce cas:
Votre
est la version 25.1.1 , et votre
est la version 24.0.0 , vous devez donc ajouter le mediarouter avec la même version:
Et faites cela pour chaque exemple que la petite fenêtre d'information indique, dans ce cas toutes les bibliothèques qui n'ont pas la version 25.1.1.
Vous devez synchroniser le gradle après avoir corrigé la bibliothèque indiquée pour voir la bibliothèque et le package suivants que vous devez modifier.
IMPORTANT:
Si vous n'utilisez pas explicitement une ou plusieurs bibliothèques spécifiées et que cela vous donne l'erreur, cela signifie qu'elle est utilisée en interne par une autre bibliothèque, compilez-la de toute façon explicitement.
Vous pouvez également utiliser une autre méthode pour voir la différence des versions de toutes les bibliothèques que vous êtes en train de compiler (comme exécuter un rapport de dépendance gradle ou aller dans vos fichiers de bibliothèques), le véritable objectif est de compiler toutes les bibliothèques que vous utilisez avec la même version .
la source
support:mediarouter
que fait exactement?La meilleure façon de résoudre le problème est d'implémenter tous les 'com.android.support: ...' suggérés par Android Studio
(Peu importe les versions de support que vous utilisez - 27.1.1, 28.0.0 etc.)
Placez le curseur sur la ligne d'erreur, par exemple
Android Studio vous proposera quelle «com.android.support: ...» est une version différente de «com.android.support:appcompat-v7:28.0.0»
Exemple
Alors ajoutez
com.android.support:animated-vector-drawable:28.0.0
&com.android.support:exifinterface:28.0.0
. Maintenant, synchronisez le fichier gradle.Un par un, essayez d'implémenter tous les «com.android.support: ...» suggérés jusqu'à ce qu'il n'y ait pas d'erreur dans cette ligne
implementation 'com.android.support:appcompat-v7:28.0.0'
Dans mon cas, j'ai ajouté
Toutes ces dépendances, cela pourrait être différent pour vous.
la source
Ajoutez ceci à la toute fin de votre build.gradle (Module: app):
Assurez-vous que vous remplacez '25 .3.1 'par la version de la bibliothèque de support Android que vous souhaitez utiliser pour toutes les dépendances, elle ne doit pas être inférieure à votre version SDK complile
que re synchroniser gradle
la source
J'ai eu exactement le même problème après la mise à jour vers Android Studio 2.3
L'ajout de cette ligne aux dépendances a résolu mon problème:
la source
renderscriptSupportModeEnabled false
ce paramètre sur false. Et la compilation'com.android.support:customtabs:25.2.0'
et l'erreur ont disparu.A) Exécutez
gradle dependencies
ou./gradlew dependencies
B) Examinez votre arborescence et déterminez laquelle de vos dépendances spécifie une version de bibliothèque de support différente pour une dépendance que vous ne contrôlez pas.
Je ne savais pas que cet avertissement s'affiche également si la dépendance n'est pas complètement utilisée directement par votre propre code. Dans mon cas, Facebook spécifie certaines bibliothèques de support que je n'utilisais pas, vous pouvez voir ci-dessous que la plupart de ces dépendances ont été remplacées par ma propre spécification de 25.2.0, indiquée par les symboles -> XXX (*) . La vue de la carte et les bibliothèques d'onglets personnalisés n'ont été remplacées par personne, donc je dois demander 25.2.0 pour celles-ci moi-même, même si je ne les utilise pas.
Si gradle vous a déjà prévenu et vous a donné des exemples ...
... c'est encore plus facile si vous ajoutez des surlignages grep pour la version inférieure car cela
gradle dependencies
peut être assez verbeux:la source
Utiliser des variables : Faire quelque chose comme ce qui suit vous permettra de vous assurer que vous utilisez la même version avec toutes les bibliothèques
Plus d'informations sur la façon dont Google suggère de gérer ce contrôle de version sont disponibles dans cet article: https://developer.android.com/studio/build/index.html#top-level
la source
ajoutez simplement ceci:
Updated
pour les nouvelles versions du SDKla source
Si la même erreur est activée
appcompat
puis l'ajout
design
résolu.Pour moi, ajouter
incluait
appcompat-v7:23.1.1
danssans
vlc
,appcompat
seul suffit.la source
Comme vous l'avez déjà vu toutes les réponses et commentaires ci-dessus, mais cette réponse consiste à effacer quelque chose qu'un nouveau développeur pourrait ne pas obtenir facilement.
./gradlew -q dependencies app: dépendances --configuration compile
La ligne ci-dessus vous sauvera la vie sans aucun doute, mais comment obtenir le point exact du résultat de la ligne ci-dessus.
Lorsque vous obtenez le graphique ou la liste de toutes les dépendances à partir de la commande ci-dessus, vous devez rechercher le numéro de version en conflit que vous obtenez dans votre code. veuillez voir l'image ci-dessous.
dans l'image ci-dessus, vous pouvez voir que 23.4.0 crée le problème mais cela nous ne pouvons pas trouver dans notre fichier gradle. Alors maintenant, ce numéro de version (23.4.0) va nous sauver. Lorsque nous aurons ce numéro, nous le trouverons dans le résultat du résultat de la commande ci-dessus et importons directement cette dépendance directement dans notre fichier gradle. Veuillez voir l'image ci-dessous pour obtenir une vue claire.
vous pouvez clairement voir que com.android.support:cardview-v7:23.4.0 et com.android.support:customtabs:23.4.0 utilisent la version qui crée le problème. Maintenant, copiez simplement ces lignes à partir de la liste des dépendances et utilisez-les explicitement dans notre fichier gradle mais avec le lien de version mis à jour
implémentation "com.android.support:cardview-v7:26.1.0" implémentation "com.android.support:customtabs:26.1.0"
la source
Une autre façon de résoudre les conflits consiste simplement à forcer la version correcte pour toutes les dépendances comme celle-ci:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
la source
Utilisez support-v13 au lieu de support-v4
la source
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:support-v13:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
ajoutez-les dans les dépendances au niveau de l'application
la source
Mon problème est similaire au vôtre. Voici une erreur!
compile 'com.android.support:appcompat-v7:25.3.0'
Toutes les bibliothèques com.android.support doivent utiliser exactement la même spécification de version (le mélange de versions peut entraîner des plantages d'exécution). Trouvé les versions 25.3.0, 24.0.0. Les exemples incluent «com.android.support:animated-vector-drawable:25.3.0» et «com.android.support:mediarouter-v7:24.0.0»
Voir ces exemples incluent 'com.android.support:animated-vector-drawable:25.3.0' et 'com.android.support:mediarouter-v7:24.0.0'
ajoutez simplement ces codes dans les dépendances, assurez-vous que les versions sont les mêmes.
la source
J'ai eu la même erreur après l'ajout
compile 'com.google.android.gms:play-services:10.2.4'
avec la compilation'com.android.support:appcompat-v7:25.3.1'
.Ajout
animated-vector-drawable
etmediarouter libs
correction du problème.la source
J'avais ceci:
et a obtenu cette erreur:
Les solutions étaient faciles - les dépendances principales étaient toutes correctes, donc les feuilles restent - toutes les dépendances tierces. Supprimé un par un jusqu'à trouver le coupable, et se révèle être Facebook! son utilisation de la version 27.0.2 des bibliothèques de support Android. J'ai essayé d'ajouter la version 27.1.1 de cardview, mais cela ne fonctionnait pas, la solution était encore assez simple.
la source
J'ai rencontré ce problème après la mise à niveau vers Android Studio 3.4 et la version SDK vers 28.0.0. L'application de la dépendance ci-dessous a résolu le problème pour moi.
la source
J'ai utilisé ces deux pour résoudre mon problème après la mise à niveau vers Android Studio 2.3
la source
J'ai eu le même problème avant et j'ai trouvé la solution.
Je viens d'ajouter les bibliothèques qui avaient une autre version mais avec la même version de mon
support:appcompat
.Pour votre erreur par exemple:
* La solution est de compiler les versions de ces bibliothèques comme ça:
compile 'com.android.support:mediarouter-v7:25.1.1'
-si une autre bibliothèque avait le même problème et avait une autre version, il suffit de la compiler avec votre
support:appcompat
versionCela a résolu mon problème et j'espère qu'il résoudra le vôtre.
Meilleurs vœux :)
la source
Après avoir recherché et combiné les réponses, la version 2018 de cette question et cela a fonctionné pour moi:
1) Dans l'onglet de navigation, changez-le en vue de projet
2) Accédez à [YourProjectName] /. Idea / bibliothèques /
3) Supprimez tous les fichiers commençant par Gradle__com_android_support_ [libraryName]
Par exemple: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) Dans votre fichier gradle, définissez une variable et utilisez-la pour remplacer le numéro de version comme $ {variableName}
Variable Def:
Utiliser une variable:
exemple gradle:
la source
Très simple avec la nouvelle version du studio android 3.x.
Copiez simplement la version inférieure à la version actuelle et ajoutez-la explicitement avec le même numéro de version que la version actuelle.
Exemple
Copiez simplement la version
com.android.support:exifinterface:27.1.0
et changez-la pourcom.android.support:exifinterface:27.1.1
qu'elle devienne égale à la version actuelle que vous utilisez et ajoutez-la à vos dépendances Gradle comme suit.Remarque: Une fois que vous avez terminé, n'oubliez pas de cliquer sur Synchroniser maintenant en haut de l'éditeur.
la source
en 2018 mise à jour pour cette erreur ajouter l'implémentation de la structure du projet
en mode projet -> Bibliothèques externes , vous pouvez trouver votre problème, dans mon cas, j'utilise la version 28 et les bibliothèques externes que j'ai trouvées
com.android.support:support-media-compat-26.0.0
et voici l'erreur.après la mise en œuvre
support v13
et ça marchela source
Vous avez défini toute autre dépendance à compiler avec la version
24.0.0
au lieu de25.1.1
. Veuillez définir toutes les versions de dépendances de la même manière que25.1.1
.la source
J'ai dû ajouter les lignes suivantes en gradle pour supprimer l'erreur
la source
J'ai exécuté les tâches ./gradlew --all et vérifié les dépendances qui étaient une version différente de la version ciblée (25.3.1). Vous obtiendrez quelque chose comme ceci:
Dans ce cas, je visais la 25.3.1 et j'avais des dépendances ciblant différentes versions lorsque j'ai exécuté cette commande. L'astuce consiste à identifier les dépendances de cette liste qui ciblent les versions précédentes et à les remplacer en important la version la plus récente de la dépendance dans Gradle.
la source
J'ai le même problème mais je l'ai résolu en ajoutant ces trois lignes
maintenant tout fonctionne parfaitement
la source
Voici mon flux pour corriger cet avertissement
build.gradle
Pour afficher / vérifier
dependencies
toutes les bibliothèques de votre applicationOuvrez le terminal et exécutez
./gradlew app:dependencies
Pour afficher la
dependencies
bibliothèque spécifique de votre application, suivez le didacticiel ici: - Comment exclure les dépendances d'une dépendance particulière dans GradleJ'espère que ça aide
la source
Ouvrez la bibliothèque externe de votre projet, vous verrez que certaines bibliothèques utilisent toujours la version précédente bien que vous n'ayez pas mentionné ces bibliothèques, donc ma suggestion est simplement d'utiliser la version de bibliothèque particulière pour celles qui résoudront votre problème.
la source
Je viens de mettre à jour mon référentiel de support Android vers (révision: 44.0.0); puis les outils Android SDK et l'émulateur vers la dernière version 25.3.1 du gestionnaire sdk> Outils SDK Et cela a résolu mon problème.
la source