Home  >  Article  >  Java  >  How to Resolve \"Manifest Merger Error: Duplicate Attribute application@appComponentFactory\" in Android?

How to Resolve \"Manifest Merger Error: Duplicate Attribute application@appComponentFactory\" in Android?

DDD
DDDOriginal
2024-10-31 17:11:02229browse

How to Resolve

Manifest Merger Error: Duplicate Attribute application@appComponentFactory

In the provided Android project, you're encountering the following error:

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

This error indicates that you have duplicate application@appComponentFactory attributes defined in your Android manifest, causing a manifest merger failure. Specifically, two different libraries (androidx.core and com.android.support) are both declaring this attribute.

Resolution:

To resolve this issue, you have two options:

1. Fully Migrate to AndroidX

Migrate your entire project to AndroidX libraries, replacing all support libraries with their androidx counterparts. This involves making the following changes:

  • Upgrade the Android Gradle plugin to version 3.2.1 or later.
  • Set Gradle's compileSdkVersion to 28 or higher.
  • Update all support library dependencies to their AndroidX versions.

Example:

<code class="gradle">implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.constraintlayout:constraintlayout:1.1.3"</code>

2. Downgrade Firebase Dependency

Alternatively, you can downgrade your Firebase dependency to a version that does not require AndroidX libraries. However, this is not a long-term solution, as Firebase is actively migrating to AndroidX.

Example:

<code class="gradle">implementation "com.google.firebase:firebase-messaging:17.3.4"</code>

Additional Notes:

  • If you add tools:replace="android:appComponentFactory" to the manifest as suggested by the error message, it will override the existing attribute value with the value from the first library that defines it. This approach may work in the short term, but it's not recommended for the long term.
  • Double-check any third-party libraries or dependencies that may be declaring the android:appComponentFactory attribute. If you find any, consider updating them to their AndroidX versions or excluding them from the project.

The above is the detailed content of How to Resolve \"Manifest Merger Error: Duplicate Attribute application@appComponentFactory\" in Android?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn