Android Material and appcompat Manifest merger failed

AndroidAndroid Gradle-Pluginbuild.gradleGradle Plugin

Android Problem Overview


I have next grade

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    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.android.material:material:1.0.0-rc01'
}

But when I want to build app I get next log:

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
	is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
	Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.

Okey! Go to manifest and do it:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="ru.chopcode.myapplication">

    <application
        tools:replace="android:appComponentFactory"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
    </application>

</manifest>

Then I get this error in my Logcat:

Manifest merger failed with multiple errors, see logs that I have Linked with it

Android Solutions


Solution 1 - Android

I had similar problem. Added two lines in gradle.properties file:

android.useAndroidX=true
android.enableJetifier=true

These two lines automatically resolved my dependency conflicts between google's files and third party dependencies. Here's the link to follow: https://developer.android.com/topic/libraries/support-library/androidx-overview#new-project

Solution 2 - Android

I faced same error when i try to add Kotlin-KTX library to my project.

I try to AndroidX migration, and problem fixed!

Refactor/Migrate to AndroidX

Solution 3 - Android

Reason of Fail

You are using material library which is part of AndroidX. If you are not aware of AndroidX, please go through this answer.

> One app should use either AndroidX or old Android Support libraries. > That's why you faced this issue.

For example -

In your gradle, you are using

  • com.android.support:appcompat-v7 (Part of old --Android Support Library--)
  • com.google.android.material:material (Part of AndroidX) (AndroidX build artifact of com.android.support:design)
Solution

So the solution is to use either AndroidX or old Support Library. I recommend to use AndroidX, because Android will not update support libraries after version 28.0.0. See release notes of Support Library.

Just migrate to AndroidX.Here is my detailed answer to migrate to AndroidX. I am putting here the needful steps from that answer.

Before you migrate, it is strongly recommended to backup your project.

>### Existing project

  • Android Studio > Refactor Menu > Migrate to AndroidX...
  • It will analysis and will open Refractor window in bottom. Accept changes to be done.

image

>### New project

Put these flags in your gradle.properties

android.enableJetifier=true
android.useAndroidX=true

Check @Library mappings for equal AndroidX package.

Check @Official page of Migrate to AndroidX

What is Jetifier?

Solution 4 - Android

In my case, this is working perfectly.. I have added below two line codes inside manifest file

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

Credit goes to this answer.

Manifest file Example

Solution 5 - Android

Simple Solutions - migrate into AndroidX

in the gradle.properties, just add below two scripts

android.useAndroidX=true
android.enableJetifier=true

What was the reason ↓

> All packages in AndroidX live in a consistent namespace starting with the string androidx. The Support Library packages have been mapped into the corresponding androidx.* packages. For a full mapping of all the old classes and build artifacts to the new ones, see the Package Refactoring page.

Please see the Package Refactoring page

Solution 6 - Android

Just change "rc01" in first and last line inside dependencies to "alpha1" This is working for me

Solution 7 - Android

Just remove the android.support dependancy

    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'

Quoting From Material Guidelines

>If you don’t want to switch over to the new androidx and com.google.android.material packages yet, you can use Material Components via the com.android.support:design:28.0.0-alpha3 dependency. > >### Note: You should not use the com.android.support and com.google.android.dependencies in your app at the same time.

Just removing this dependency works fine

    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'

Here is complete dependencies example

    dependencies {
       implementation fileTree(dir: 'libs', include: ['*.jar'])
       implementation 'com.google.android.material:material:1.0.0-beta01'
       implementation 'com.android.support.constraint:constraint-layout:1.1.2'
       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'
   }

Solution 8 - Android

As of Android P, the support libraries have been moved to AndroidX

Please do a refactor for your libs from this page.

https://developer.android.com/topic/libraries/support-library/refactor

Solution 9 - Android

See This Image and Add This line in your android AndroidManifest.xml

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

enter image description here

Solution 10 - Android

Add these lines inside in AndroidManifest.xml file.

tools:replace="android:appComponentFactory"

android:appComponentFactory="whateverString"

Solution 11 - Android

  1. Please go to Refactor->Migrate->Migrate to Android X.

  2. Please add this to your gradle.properties file:

     android.enableJetifier=true
     android.useAndroidX=true
    

And perform Sync.

Solution 12 - Android

just add these two lines of code to your Manifest file

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

Solution 13 - Android

Migrate to androidX if it an existing project. If it is new project add these two flags to Gradle.propeties

android.enableJetifier=true  
android.useAndroidX=true

for more detail steps https://developer.android.com/jetpack/androidx or check this https://stackoverflow.com/questions/51280090/what-is-androidx

Solution 14 - Android

Follow these steps:

  • Goto Refactor and Click Migrate to AndroidX
  • Click Do Refactor

Solution 15 - Android

Only If you don't want to use androidx

So in my case, I am using a library that was using androidx but I am not using androidx so when I downgraded that library version the problem was resolved.

In my Case:

implementation 'com.github.turing-tech:MaterialScrollBar:13.+'

the above-mentioned library makes problem 13.+ will automatically get a new version of the library which using androidx. So I downgraded library version to:

implementation 'com.github.turing-tech:MaterialScrollBar:13.2.5'

And the problem was resolved.

Solution 16 - Android

This issue mainly happened for old dependencies.

There have 2 solution:

First one:

Update all old dependencies and ClassPaths from Project level gradle files.

classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.2.0'

Second one:

Your project Migrate to AndroidX

From Android Studio Menu -> Refanctor -> Migrate to AndroidX

Thanks, let me know if anyone help from this answer.

Solution 17 - Android

Finally found a quick and easy solution by adding two lines in the android/build.gradle file.

googlePlayServicesVersion = "16.+"

firebaseVersion = "17.6.0"

Please follow this 100% correct.

Solution 18 - Android

Its all about the library versions compatibility

I was facing this strange bug couple of 2 hours. I resolved this error by doing these steps

hange your build.gradle dependencies into

  implementation 'com.google.android.gms:play-services-maps:17.0.0'

to

  implementation 'com.google.android.gms:play-services-maps:15.0.0'

Solution 19 - Android

All I did was go to the "Refactor" option on the top menu.

Then select "Migrate to AndroidX"

Accept to save the project as a zip file.

Please update Android Studio as well as Gradle to ensure no problems are encountered.

Solution 20 - Android

Create new project and compare your build.gradle files and replaced all

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'

and other dependencies with the same as were in a new project someting like that

implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'

androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'

androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'

implementation 'androidx.core:core-ktx:1.0.0-alpha3'

And then fixed imports to use androidx in kotlin files.

Solution 21 - Android

1.Added these codes to at the end of your app/build.gradle:

configurations.all {
   resolutionStrategy.force 'com.android.support:support-v4:28.0.0' 
   // the above lib may be old dependencies version       
    }

2.Modified sdk and tools version to 28:

compileSdkVersion 28
buildToolsVersion '28.0.3'
targetSdkVersion  28

3.In your AndroidManifest.xml file, you should add two line:

<application
    android:name=".YourApplication"
    android:appComponentFactory="AnyStrings"
    tools:replace="android:appComponentFactory"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar">

Or Simply

  • Go to Refactor (Studio -> Menu -> Refactor)
  • Click the Migrate to AndroidX. it's working
  • it's working.

Solution 22 - Android

If you do not intend to migrate to AndroidX follow the below steps

  1. In terminal type gradlew app:dependencies
  2. After dependencies are shown in the window press Ctrl+f and type androidX
  3. You will find all the dependencies which are using androidx lib internally you may have to downgrade that or use alternative for that to ensure it is no longer using androidX libs internally.

Solution 23 - Android

First of all be sure to add this line in manifest tag

xmlns:tools="https://schemas.android.com/tools"

Then add tools replace your suggested one in Android studio

Solution 24 - Android

  • Go to Refactor (Image )

  • Click the Migrate to AndroidX. it's working

  • it's working.

Solution 25 - Android

Try this

tools:replace="android:appComponentFactory"
android:appComponentFactory="android.support.v4.app.CoreComponentFactory"

Rebuild your project.

Solution 26 - Android

I had this same problem for three days.

It is like android wants us to either use Kotlin Or AndroidX, they are doing away with Android.

But this is how I solved it.

  • I migrated my project to AndroidX. This does not bring in any errors related to this issue in question, It updates files respectively. No method, class or variable name needs to be changed in your application.

NB: You must be using the latest Libraries (build.grudle file) in the latest stable version of android studio 3.4.1

Solution 27 - Android

I don't know this is the proper answer or not but it worked for me

Increase Gridle Wrapper Property

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

and Build Gridle to

    classpath 'com.android.tools.build:gradle:3.4.2'

its showing error because of the version.

Solution 28 - Android

I had the same error when working with Groupie. implementation 'com.xwray:groupie:2.3.0'

I solved it by changing version to implementation 'com.xwray:groupie:2.1.0'

Solution 29 - Android

In may case I didn't want to pass to androidX. And I have to check my last changes. I figure out that the new component was --> lottie 2.8.0

So I downgrade it to: implementation 'com.airbnb.android:lottie:2.7.0'

Solution 30 - Android

Change proguardFile in build.gradle (Module: app) to the following

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

instead of

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

This worked for me

Solution 31 - Android

For solving this issue i would recommend to define explicitly the version for the ext variables at the android/build.gradle at your root project

ext {
    googlePlayServicesVersion = "16.1.0" // default: "+"
    firebaseVersion = "15.0.2" // default: "+"

    // Other settings
    compileSdkVersion = <Your compile SDK version> // default: 23
    buildToolsVersion = "<Your build tools version>" // default: "23.0.1"
    targetSdkVersion = <Your target SDK version> // default: 23
    supportLibVersion = "<Your support lib version>" // default: 23.1.1
}

reference https://github.com/zo0r/react-native-push-notification/issues/1109#issuecomment-506414941

Solution 32 - Android

I'm also facing the same issue, for your android studio, you just change the android Gradle plugin version 3.3.2 and Gradle version is 5.1.1

Solution 33 - Android

in my case i am add in manifest file `

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

application tag of course, It will work

Solution 34 - Android

if you are using capacitor, upgrade to capacitor/core 2.0.1 or up in your package.json

Solution 35 - Android

change your build.gradle dependencies into

 implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'

or

 implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'

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
QuestionЕвгений УсовView Question on Stackoverflow
Solution 1 - AndroidAbir HasanView Answer on Stackoverflow
Solution 2 - AndroidMeteView Answer on Stackoverflow
Solution 3 - AndroidKhemraj SharmaView Answer on Stackoverflow
Solution 4 - AndroidMuhaiminur RahmanView Answer on Stackoverflow
Solution 5 - AndroidE J ChathurangaView Answer on Stackoverflow
Solution 6 - AndroidAnubhav GuptaView Answer on Stackoverflow
Solution 7 - AndroidArfat BinkilebView Answer on Stackoverflow
Solution 8 - AndroidMughilView Answer on Stackoverflow
Solution 9 - AndroidPrashant ArvindView Answer on Stackoverflow
Solution 10 - AndroidAjayView Answer on Stackoverflow
Solution 11 - AndroidGirish B.RView Answer on Stackoverflow
Solution 12 - AndroidManoj AlwisView Answer on Stackoverflow
Solution 13 - AndroidtrustidkidView Answer on Stackoverflow
Solution 14 - AndroidBIS TechView Answer on Stackoverflow
Solution 15 - AndroidSuraj VaishnavView Answer on Stackoverflow
Solution 16 - AndroidSheikh HasibView Answer on Stackoverflow
Solution 17 - AndroidManoj AlwisView Answer on Stackoverflow
Solution 18 - AndroidKashif AhmedView Answer on Stackoverflow
Solution 19 - Androidd4rkconView Answer on Stackoverflow
Solution 20 - AndroidMuhammad Zahab Ahmad KhanView Answer on Stackoverflow
Solution 21 - AndroidAttaullahView Answer on Stackoverflow
Solution 22 - AndroidSwapnil KadamView Answer on Stackoverflow
Solution 23 - AndroidShubham Kumar Gupta GgpsView Answer on Stackoverflow
Solution 24 - AndroidAydın ÜzmezView Answer on Stackoverflow
Solution 25 - AndroidbikramView Answer on Stackoverflow
Solution 26 - AndroidTHEMBO CHARLES LWANGAView Answer on Stackoverflow
Solution 27 - Androidakshay shettyView Answer on Stackoverflow
Solution 28 - AndroidatilganhaciView Answer on Stackoverflow
Solution 29 - AndroidmoralejaSinCuentoNiProverbioView Answer on Stackoverflow
Solution 30 - AndroidDavid WanjohiView Answer on Stackoverflow
Solution 31 - AndroidGovanView Answer on Stackoverflow
Solution 32 - AndroidShiva KanumalaView Answer on Stackoverflow
Solution 33 - Androidvinod yadavView Answer on Stackoverflow
Solution 34 - AndroidshakView Answer on Stackoverflow
Solution 35 - AndroidBIS TechView Answer on Stackoverflow