After updating to android studio 2.3 I got this error message.
I know it's just a hint as the app run normally but it's really strange.
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.1.1, 24.0.0. Examples include com.android.support:animated-vector-drawable:25.1.1 and com.android.support:mediarouter-v7:24.0.0
my 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'
}
Best Answer
You can solve this with one of the following solutions:
Update:
As of Android studio 3.0, it becomes much easier as it now shows a more helpful hint, so we only need to follow this hint.
for example:
Solution:
Add explicitly the library with the old version but with a new version number.
in my case
com.android.support:customtabs:26.1.0
so I need to add:ie: Take the library from the second item, and implement it with the version number from the first.
Note: don't forget to press sync now so gradle can rebuild the dependency graph and see if there are any more conflicts.
Explanation:
you may be confused by the error message as don't use
customtabs
so how I have a conflict!!well.. you didn't use it directly but one of your libraries uses an old version of
customtabs
internally, so you need to ask for it directly.if you curious to know which of your libraries is responsible for the old version and maybe ask the author to update his lib, Run a Gradle dependency report, see the old answer to know how.
Note this
Old answer:
inspired by CommonsWare answer:
Run a Gradle dependency report to see what your full tree of dependencies is.
From there, you will see which one of your libraries are asking for a different version of the Android Support libraries. For whatever it is asking for, you can ask for it directly with the 25.2.0 version or use Gradle's other conflict resolution approaches to get the same versions.
Update:
As of gradle plugin version: 3.0
compile
has been replaced byimplementation
orapi
see this answer for the difference.hence use instead:
or for windows cmd:
and search for the conflicted version.
For me, the error disappeared after removing
com.google.android.gms:play-services:10.2.0
And only include
com.google.android.gms:play-services-location:10.2.0
andcom.google.android.gms:play-services-maps:10.2.0
as they are the only two play services that I use.I think the
gms:play-services
depend on some old components of the support library, so we need to add them explicitly ourselves.for AS 3.0 an older.
Run:
Example:
if someone knows a better way in the new gradle plugin please let me know.