J'ai essayé de nombreuses solutions sur ce site, mais le problème n'est toujours pas résolu. Le problème est dû à la bibliothèque Android X. Lorsque j'ai ajouté Android X, ce problème a été résolu mais il a ouvert un nouveau problème. Comment résoudre ce problème?
Plus tôt cette erreur venait:
Manifest merger failed : Attribute application@appComponentFactory value=(Android.support.v4.app.CoreComponentFactory) from [com.Android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="Android:appComponentFactory"' to <application> element at AndroidManifest.xml:19:5-142:19 to override.
Après avoir ajouté tools:replace="Android:appComponentFactory"
, cette erreur est survenue:
Java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
at com.Android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.Java:540)
at com.Android.build.gradle.tasks.MergeManifests.doFullTaskAction(MergeManifests.Java:173)
Erreur de fusion (dans Android Manifest):
Erreur: outils: remplacer spécifié à la ligne: 2 pour l'attribut Android: appComponentFactory, mais pas de nouvelle valeur spécifiée dans le manifeste principal de l'application (ce fichier), ligne 1
Manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="com.example"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
tools:replace="allowBackup, Android:appComponentFactory"
Android:allowBackup="false">
...
<application
Android:name="com.example"
Android:icon="@mipmap/icon"
Android:debuggable="true"
Android:hardwareAccelerated="false"
Android:largeHeap="true"
Android:supportsRtl="true"
Android:theme="@style/AppTheme"
Android:allowBackup="false"
tools:ignore="GoogleAppIndexingWarning,HardcodedDebugMode">
...
Je pense que vous migrez vers les bibliothèques AndroidX.
Ajouter les lignes ci-dessous au fichier gradle.properties
Android.useAndroidX=true
Android.enableJetifier=true
Supprimez tools:replace="Android:appComponentFactory"
du manifeste.
Remplacez Android.support.v7.app.AppCompatActivity
par androidx.appcompat.app.AppCompatActivity
Vous pouvez essayer d'ajouter:
Android:appComponentFactory="Android.support.v4.app.CoreComponentFactory"
Vers la balise <application >
dans votre manifeste.
Dans mon cas, j'avais mis à jour la dépendance de Firebase et des services de lecture, ce qui est à l'origine de ce problème.
Retourne les mises à jour de dépendance et l'erreur disparaît
Il semble que les dernières dépendances de Firebase et de Play Service soient compatibles avec androidx.
Dans mon cas, je rencontrais un problème à cause de la version de Firebase que j'utilisais. Rétrograder la version de Firebase m'a aidé.
implémentation 'com.crashlytics.sdk.Android:crashlytics:2.10.1' implémentation 'com.google.firebase: firebase-core: 16.0.6'
Cela arrivait souvent parce que vous utilisiez bibliothèques Androidx et bibliothèques de support en même temps. Certaines bibliothèques tierces peuvent contenir des bibliothèques de support et d'autres bibliothèques tierces peuvent contenir des bibliothèques Androidx, ce qui peut également entraîner ce problème. Si vous avez un environnement Gradle sur votre PC, essayez la commande "gradlew: app: dependencies" dans le terminal de Android Studio, cette commande listera toutes les bibliothèques, y compris les bibliothèques tierces de votre projet, et verra quelle bibliothèque. ou cadre utilisé les bibliothèques Androidx et qui pas. Essayez ensuite de mettre à niveau les anciennes bibliothèques de support utilisées, et ce problème devrait disparaître.