In project 'app' a resolved Google Play services library dependency depends on another at an exact version

AndroidAndroid Gradle-PluginFirebaseui

Android Problem Overview


Trying to create a simple app with FireStore and Google Authentication. Having problem with the gradle:

> In project 'app' a resolved Google Play services library dependency > depends on another at an exact version (e.g. "[15.0. 1]", but isn't > being resolved to that version. Behavior exhibited by the library will > be unknown. > > Dependency failing: com.google.android.gms:play-services-flags:15.0.1 > -> com.google.android.gms:play-services-basement@[ > 15.0.1], but play-services-basement version was 16.0.1. > > The following dependencies are project dependencies that are direct or > have transitive dependencies that lead to the art ifact with the > issue. > -- Project 'app' depends onto com.google.firebase:[email protected] > -- Project 'app' depends onto com.firebaseui:[email protected] > > For extended debugging info execute Gradle from the command line with > ./gradlew --info :app:assembleDebug to see the dep endency paths to > the artifact. This error message came from the google-services Gradle > plugin, report issues at https:// > github.com/google/play-services-plugins and disable by adding > "googleServices { disableVersionCheck = false }" to your b uild.gradle > file.

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27
        defaultConfig {
            applicationId "myapp.com"
            minSdkVersion 19
            targetSdkVersion 27
            versionCode 11
            versionName "1.1"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation 'com.google.firebase:firebase-firestore:17.1.5'
    
        implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
    
    }
    
    apply plugin: 'com.google.gms.google-services'
    com.google.gms.googleservices.GoogleServicesPlugin

Project gradle:

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'

        classpath 'com.google.gms:google-services:4.2.0'

    }
}

Can somebody help me?

Android Solutions


Solution 1 - Android

There are many answers here for individual solutions that do not really get down to the problem. Here is how to solve this in general:

As the original log output suggests, it is useful to run the build in the terminal with the following command:

./gradlew --info assembleDebug

This will give you a list of all dependencies that are involved in the conflict. It looks similar to this (I removed the package name stuff to make it a bit more readable):

Dependency Resolution Help: Displaying all currently known paths to any version of the dependency: Artifact(groupId=com.google.firebase, artifactId=firebase-iid)

-- task/module dep -> firebase-analytics@17.2.0
---- firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
------ play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0

-- task/module dep -> firebase-core@17.2.0
---- firebase-core:17.2.0 library depends -> firebase-analytics@17.2.0
------ firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
-------- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0

-- task/module dep -> play-services-measurement-api@17.2.0
---- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0

-- task/module dep -> firebase-iid@19.0.0

-- task/module dep -> firebase-messaging@17.1.0
---- firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]

-- task/module dep -> com.pressenger:sdk@4.8.0
---- com.pressenger:sdk:4.8.0 library depends -> firebase-messaging@17.1.0
------ firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]

From this list you get to know 2 things:

  1. Where is the conflicting depedency found
  2. What versions of the conflicting dependency are set up

In my case the conflicting dependency is firebase-iid: It's either @19.0.0 or @16.2.0

To fix this you must define the top-level dependency of the wrong firebase-iid explicitly in your build.gralde.

So in the upper log you can see that there are 2 examples of an out-dated version of [email protected]. One comes from -- task/module dep -> [email protected] the other one from a third-party library (pressenger). We don't have influence on the third-party library, so nothing to do here. But for the other dependency, we have to declare it explicitly with the correct version:

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Now the build works again. Happy ending :)

Solution 2 - Android

There's a known bug with Google Services 4.2.0 that may cause this. Downgrading your google-services version to 4.1.0 in your project's build.gradle may resolve the issue

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.1.0' //decreased from 4.2.0
    }
}

Solution 3 - Android

The problem was it was missing a dependency. Adding com.google.firebase:firebase-auth solved the issue.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-firestore:17.1.5'

//    implementation'com.google.firebase:firebase-core:16.0.6'
//    implementation'com.google.firebase:firebase-storage:16.0.5'

    implementation'com.google.firebase:firebase-auth:16.1.0' => add this line
    implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
}

Solution 4 - Android

There was a bug related to google-services that was eventually fixed in version 4.3.3.

So you can either use 4.3.3 or the latest version (check here)

classpath 'com.google.gms:google-services:4.3.3' // or latest version

or downgrade to 4.1.0

classpath 'com.google.gms:google-services:4.1.0'

Solution 5 - Android

i added the latest version of firebase messaging to build.gradle (Module: app) in my project and problem solved

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Solution 6 - Android

Your app/build.gradle might have these lemon color blocked on dependencies part in Android Studio like on the picture below,

image

These (lemon color blocks) mean it's not latest version of dependency. just put mouse on each block, then IDE (Android Studio) tells the numbers that have to be changed.

Solution 7 - Android

Updating all my Google Play Services libraries to the latest in ALL modules solved the issue for me. I don't see that you have any Google Play Services libraries, but I wanna leave this answer here to those that might find this useful.

Solution 8 - Android

My project was working fine (No build issues). All of a sudden, I got this error >"resolved Google Play services library dependency depends on another at an exact version.."

I figured out that it was because I was building offline.

If anyone gets the same error, check if you are building offline.

Solution 9 - Android

I am using One Signal and caught this error once a time.

The reason was:

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'

to put apply plugin for one signal before 'com.android.application'. Maybe this will be useful for some other apply plugin too.

Solution 10 - Android

Thanks, but unfortunately, this didn't entirely work for me. I also had to add the following to my build.grade (Module:app)

implementation 'com.google.android.gms:play-services-flags:16.0.1'
implementation 'com.google.android.gms:play-services-basement:16.0.1'

Solution 11 - Android

The problem was fixed after upgrading this lib in my project's build.gradle:

classpath 'com.google.gms:google-services:4.3.3'

and these ones in the app module's build.gradle:

implementation 'com.google.firebase:firebase-core:17.3.0'
implementation 'com.google.firebase:firebase-messaging:20.1.5'

After this, use Android Studio's Clean menu

Solution 12 - Android

Add FCM to your App added Lower dependency Then I changed the dependency to the latest version this problem has solved.

compile 'com.google.firebase:firebase-messaging:17.3.4'

to

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Solution 13 - Android

None of the other answers worked for me. My use-case is with React-Native 61+ trying to setup FCM and Analytics. What worked for me was using the latest google-services in android/build.gradle

dependencies {
    classpath "com.android.tools.build:gradle:3.4.2"
    classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}

And then adding the gradle dependencies to android/app/build.gradle required for the products I'm using (in my case Analytics and Cloud Messaging) from here

dependencies {
    ...
    // add the Firebase SDK for Google Analytics
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    ...
}

Solution 14 - Android

I just tried @live-love's accepted answer myself and agree with the approach.

It might be more precise, however, to correct your dependencies according to the latest Google Services library version.

For my case, it happened when I just added/activated a Firebase service to the app.

You need to follow the latest version in project and Gradle app.

My app/build.gradle
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    //Android Support Design Library
    implementation 'com.android.support:design:27.1.1'
    //RecyclerView
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    // Support multidex
    implementation 'com.android.support:multidex:1.0.3'
    // Firebase Core
    // implementation 'com.google.firebase:firebase-core:16.0.1'
    //Firebase Authentication
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    // Firestore Firestore
    implementation 'com.google.firebase:firebase-firestore:21.4.3'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    // glide
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

    // Circle ImageView
    implementation 'de.hdodenhof:circleimageview:2.2.0'
}
apply plugin: 'com.google.gms.google-services'
My project's build.gradle
dependencies {
    classpath 'com.android.tools.build:gradle:3.5.3'
    classpath 'com.google.gms:google-services:4.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Don't forget to sync the Gradle again.

Solution 15 - Android

The working solution for me was to remove "firebase-auth" and add "firebase-core" dependency. But after a couple of project rebuilds I started experiencing another compilation issue so I had to add the "firebase-auth" dependency in addition to the "firebase-core" in order to make it work:

implementation 'com.google.firebase:firebase-auth:19.0.0'
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'

Solution 16 - Android

Add the line below in you Project's build.gradle (See image below)

classpath 'com.google.gms:google-services:4.3.3'

enter image description here

Then update your Firebase related packages by going to :

File > Project Structure > Dependencies > app

Update Firebase modules to latest version (See the image below)

enter image description here

In my case I am using :

implementation 'com.google.firebase:firebase-database:19.3.0'
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.google.firebase:firebase-messaging:20.1.7'
implementation 'com.google.firebase:firebase-core:17.4.0'
implementation 'com.google.firebase:firebase-storage:19.1.1'

implementation 'com.google.firebase:firebase-analytics:17.2.2'

Don't forget to add :

apply plugin: 'com.google.gms.google-services'

See my Module's build.gradle file below.

enter image description here

Solution 17 - Android

This worked for me!

dependencies {
    classpath "com.android.tools.build:gradle:3.4.2"
    classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}

dependencies {
    ...
    // add the Firebase SDK for Google Analytics
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    ...
}

Solution 18 - Android

The ML Kit library had versioning problems in the latest release. >Google Play services library dependency depends on another at an exact version error (thrown by the google-services plugin)

Here is the link to the solution. https://firebase.google.com/support/release-notes/android#bom_v25-8-0

Solution 19 - Android

This is new thing happen to me that If your network is not secure and you are getting prompt of Untrusted Certificate.

If you will Accept or Reject, It will give this error until your network will not be secure.

You can work offline by checking Setting -> Gradle -> Offline Mode

Solution 20 - Android

If you used song haesuk answer, you need to do it for both build.gradle Project (classpath in dependencies), and in build.gradle app (implementations). Also do the same if you change builds for any libraries imported to the app.

I use suggestions provided by android studio and it changed implementations but did not change dependencies hence during build, there was a conflict between the two and it gave me same error.

Solution 21 - Android

I replicated the issue when I accidentally added com.google.firebase:firebase-ml-vision twice with different versions.

Solution 22 - Android

I resolved it by simply clearing the app-level dependencies block leaving just the default Android dependencies like so:

dependencies {
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
  implementation 'androidx.multidex:multidex:2.0.0'
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionlive-loveView Question on Stackoverflow
Solution 1 - AndroidmuetzenfloView Answer on Stackoverflow
Solution 2 - AndroidCodyView Answer on Stackoverflow
Solution 3 - Androidlive-loveView Answer on Stackoverflow
Solution 4 - AndroidRyan TaylorView Answer on Stackoverflow
Solution 5 - AndroidMehmet Ali BayramView Answer on Stackoverflow
Solution 6 - Androidsong haesukView Answer on Stackoverflow
Solution 7 - AndroidmcoView Answer on Stackoverflow
Solution 8 - AndroidAdel Ben HamadiView Answer on Stackoverflow
Solution 9 - AndroiddanyapdView Answer on Stackoverflow
Solution 10 - AndroidrobkriegerflowView Answer on Stackoverflow
Solution 11 - AndroidmatdevView Answer on Stackoverflow
Solution 12 - AndroidcreativecoderView Answer on Stackoverflow
Solution 13 - Androidbaconcheese113View Answer on Stackoverflow
Solution 14 - AndroiddjiwandouView Answer on Stackoverflow
Solution 15 - AndroidMilanView Answer on Stackoverflow
Solution 16 - AndroidXpressGeekView Answer on Stackoverflow
Solution 17 - AndroidVasanth KoradaView Answer on Stackoverflow
Solution 18 - AndroidRoman NazarevychView Answer on Stackoverflow
Solution 19 - AndroidPratik ButaniView Answer on Stackoverflow
Solution 20 - AndroidEngr. Meshach KoechView Answer on Stackoverflow
Solution 21 - AndroidGilbert ParrenoView Answer on Stackoverflow
Solution 22 - AndroidMohammed Abdul RahmanView Answer on Stackoverflow