support - tools:replace="android:value"




android manifest merger failed, gms play services/firebase (4)

I am trying to add firebase to my app using the firebaseUI. As the documentations says, I have used the corresponding gms:play-services (11.0.4) with the firebaseUI version (2.2.0) When I sync the gradle files, I receive following error:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#[email protected] value=(26.0.0) from [com.android.support:support-v13:26.0.0] AndroidManifest.xml:28:13-35
    is also present at [com.android.support:customtabs:25.4.0] AndroidManifest.xml:25:13-35 value=(25.4.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.

This is my gradle file:

android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
    applicationId "com.test.test"
    minSdkVersion 21
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])


compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'
compile 'com.android.support:design:26.0.0'
compile 'com.android.support:recyclerview-v7:26.0.0'

//firebase
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-auth:11.0.4'
compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-storage:11.0.4'
compile 'com.firebaseui:firebase-ui:2.2.0'

testCompile 'junit:junit:4.12'
}

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

I've made sure that all the versions are up to date and that they are all the same. Can't figure out what the problem is?


I solved it by adding this in AndroidManifest.xml within the <application> tag at the very bottom:

<meta-data 
  tools:node="replace"
  android:name="android.support.VERSION"
  android:value="26.1.0"  // <- The max version you see in the error message. For me it was 26.1.0
/>

Then add these two attributes to the <manifest ... > tag:

xmlns:tools="http://schemas.android.com/tools"
tools:node="replace"

I solved the problem by adding:

    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.0'
            }
        }
    }
}

from here.

The tooltip recommended adding tools:replace="android:value"' to meta-data but this throws another error, so im going with the solution above


It's happening because two versions of support libraries are clashing. On top, you have declared

buildToolsVersion "26.0.1"

and on dependencies, the version is 26.0.0

compile 'com.android.support:design:26.0.0'

Just change the support library version to 26.0.1 and it will work fine. I also did the same, worked flawlessly in my case.


add this line at the end of app level gradle file

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




firebaseui