All com.android.support libraries must use the exact same version specification
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:
All com.android.support libraries must use the exact same version
specification (mixing versions can lead to runtime crashes). Found
versions 27.0.2, 26.1.0. Examples include
com.android.support:animated-vector-drawable:27.0.2 and
com.android.support:customtabs:26.1.0there 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.)
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:
implementation "com.android.support:customtabs:27.0.2"
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 by implementation
or api
see this answer for the difference.
hence use instead:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
or for windows cmd:
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
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
and com.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:
./gradlew -q dependencies <module-name>:dependencies --configuration implementation
Example:
./gradlew -q dependencies app:dependencies --configuration implementation
if someone knows a better way in the new gradle plugin please let me know.
Why do I get All com.android.support libraries must use the exact same version specification in Android Studio 3.2.1?
Some or one of your libraries use an old version of customtabs
internally, that's why this warning message is showing. If you implement this with the latest version then the warning will be gone.
implementation 'com.android.support:customtabs:28.0.0'
After adding this I have also shown the same error for another older version of dependencies. After adding this also all warning is gone.
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
Hope this will help you to solve your problem.
Also you can check this: https://stackoverflow.com/a/42374426/5167909
Related Topics
How to Convert a Base64 String into a Bitmap Image to Show It in a Imageview
Getviewtypecount and Getitemviewtype Methods of Arrayadapter
How to Find the Latitude and Longitude from Address
How to Hook into the Power Button in Android
Different Values Folders in Android
Android Studio - Google Map Still Blank on Real Android Device on Release Apk
How to Create a Release Signed Apk File Using Gradle
Dilemma: When to Use Fragments VS Activities:
How to Get the Build/Version Number of Your Android Application
How to Add the New "Floating Action Button" Between Two Widgets/Layouts
How to Prevent Custom Views from Losing State Across Screen Orientation Changes
How to Set a Custom Font in the Actionbar Title
Height of Status Bar in Android
How to Update a Single Row in a Listview
How to Customize the Back Button on Actionbar
Android: Show Soft Keyboard Automatically When Focus Is on an Edittext