Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre « Erreur de fusion manifeste : application d'attribut en double @appComponentFactory » dans Android ?

DDD
Libérer: 2024-10-31 17:11:02
original
327 Les gens l'ont consulté

How to Resolve

Erreur de fusion manifeste : application d'attribut en double@appComponentFactory

Dans le projet Android fourni, vous rencontrez l'erreur suivante :

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.
Copier après la connexion

Cette erreur indique que vous avez des attributs application@appComponentFactory en double définis dans votre manifeste Android, provoquant un échec de fusion manifeste. Plus précisément, deux bibliothèques différentes (androidx.core et com.android.support) déclarent toutes deux cet attribut.

Résolution :

Pour résoudre ce problème, vous disposez de deux options :

1. Migrez entièrement vers AndroidX

Migrez l'intégralité de votre projet vers les bibliothèques AndroidX, en remplaçant toutes les bibliothèques de support par leurs homologues Androidx. Cela implique d'apporter les modifications suivantes :

  • Mettez à niveau le plugin Android Gradle vers la version 3.2.1 ou ultérieure.
  • Définissez la version compileSdk de Gradle sur 28 ou supérieure.
  • Mettre à jour tous prennent en charge les dépendances de bibliothèque par rapport à leurs versions AndroidX.

Exemple :

<code class="gradle">implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.constraintlayout:constraintlayout:1.1.3"</code>
Copier après la connexion

2. Rétrograder la dépendance Firebase

Vous pouvez également rétrograder votre dépendance Firebase vers une version qui ne nécessite pas de bibliothèques AndroidX. Cependant, il ne s'agit pas d'une solution à long terme, car Firebase migre activement vers AndroidX.

Exemple :

<code class="gradle">implementation "com.google.firebase:firebase-messaging:17.3.4"</code>
Copier après la connexion

Remarques supplémentaires :

  • Si vous ajoutez tools:replace="android:appComponentFactory" au manifeste comme suggéré par le message d'erreur, il remplacera la valeur de l'attribut existant par la valeur de la première bibliothèque qui le définit. Cette approche peut fonctionner à court terme, mais elle n'est pas recommandée à long terme.
  • Vérifiez toutes les bibliothèques ou dépendances tierces susceptibles de déclarer l'attribut android:appComponentFactory. Si vous en trouvez, pensez à les mettre à jour vers leurs versions AndroidX ou à les exclure du projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal