Heim  >  Artikel  >  Java  >  Wie behebe ich „Manifest Merger Error: Duplicate Attribute application@appComponentFactory' in Android?

Wie behebe ich „Manifest Merger Error: Duplicate Attribute application@appComponentFactory' in Android?

DDD
DDDOriginal
2024-10-31 17:11:02331Durchsuche

How to Resolve

Manifest Merger Error: Duplicate Attribute application@appComponentFactory

Im bereitgestellten Android-Projekt tritt der folgende Fehler auf:

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.

Dieser Fehler weist darauf hin, dass in Ihrem Android-Manifest doppelte application@appComponentFactory-Attribute definiert sind, was zu einem Fehler bei der Manifestzusammenführung führt. Konkret deklarieren zwei verschiedene Bibliotheken (androidx.core und com.android.support) dieses Attribut.

Lösung:

Um dieses Problem zu beheben, haben Sie zwei Optionen:

1. Vollständige Migration zu AndroidX

Migrieren Sie Ihr gesamtes Projekt zu AndroidX-Bibliotheken und ersetzen Sie alle unterstützenden Bibliotheken durch ihre Androidx-Gegenstücke. Dazu müssen folgende Änderungen vorgenommen werden:

  • Aktualisieren Sie das Android Gradle-Plugin auf Version 3.2.1 oder höher.
  • Setzen Sie die compileSdkVersion von Gradle auf 28 oder höher.
  • Aktualisieren Alle unterstützen Bibliotheksabhängigkeiten zu ihren AndroidX-Versionen.

Beispiel:

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

2. Firebase-Abhängigkeit herunterstufen

Alternativ können Sie Ihre Firebase-Abhängigkeit auf eine Version herunterstufen, die keine AndroidX-Bibliotheken erfordert. Dies ist jedoch keine langfristige Lösung, da Firebase aktiv auf AndroidX migriert.

Beispiel:

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

Zusätzliche Hinweise:

  • Wenn Sie tools:replace="android:appComponentFactory" zum Manifest hinzufügen, wie in der Fehlermeldung vorgeschlagen, wird der vorhandene Attributwert mit dem Wert aus der ersten Bibliothek überschrieben, die ihn definiert. Dieser Ansatz mag kurzfristig funktionieren, wird aber auf lange Sicht nicht empfohlen.
  • Überprüfen Sie noch einmal alle Bibliotheken oder Abhängigkeiten von Drittanbietern, die möglicherweise das Attribut android:appComponentFactory deklarieren. Wenn Sie welche finden, sollten Sie erwägen, sie auf ihre AndroidX-Versionen zu aktualisieren oder sie aus dem Projekt auszuschließen.

Das obige ist der detaillierte Inhalt vonWie behebe ich „Manifest Merger Error: Duplicate Attribute application@appComponentFactory' in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn