web-dev-qa-db-fra.com

Android X: outils: remplacer spécifié à la ligne: pour attribut, mais aucune nouvelle valeur spécifiée

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">
       ...
41
Malwinder Singh

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

Migration vers AndroidX

55
Akshay

Vous pouvez essayer d'ajouter:

Android:appComponentFactory="Android.support.v4.app.CoreComponentFactory"

Vers la balise <application > dans votre manifeste.

25
Gabriel Aguirre

J'ai la même erreur dans mon projet, je l'ai résolu Tu peux l'essayer

Android Studio> Refactor> Migrer vers AndroidX

enter image description here

6
shailesh

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.

4
codepeaker

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'

2
rishabh gupta

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.

1
komaki