- Retrouvez les réponses et les commentaires concernant cette question" />
1
votes

Qu'est-ce que ça veut dire? ajouter 'tools: replace = "android: appComponentFactory"' à l'élément

J'essaie d'utiliser Firebase dans mon application Android.

Ceci est mon fichier Build.gradle

Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-24:19 to override.

Lorsque je supprime la ligne de code suivante et exécute le l'application, l'application fonctionne correctement.

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-rc02] 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:5:5-19:19 to override.

Mais lorsque j'ajoute la ligne ci-dessus et que j'exécute le code, l'application affiche l'erreur suivante:

implementation 'com.google.firebase:firebase-analytics:17.2.0'

Qu'est-ce que cela signifie?

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.ecommerce5"
        minSdkVersion 27
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

    implementation 'com.google.firebase:firebase-analytics:17.2.0'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'


6 commentaires

Vous devez migrer votre projet vers AndroidX pour utiliser la dernière version des composants Firebase


Consultez les étapes de migration ici: stackoverflow.com/a/59171476/2637449


firebase-analytics: 17.2.0 est la dernière version qui nécessite androidx. Migrer vers Androidx ou dégrader la version


Est-ce que cela répond à votre question? Échec de la fusion du matériel Android et du manifeste appcompat


@ Md.Asaduzzaman Salut, j'ai essayé de migrer vers androidX. Il affiche le message suivant: "Impossible d'effectuer l'opération de refactorisation. Il y a eu des changements dans le code après que les utilisations ont été trouvées.".


@VirRajpurohit Bonjour, j'ai essayé de migrer vers androidX. Il affiche le message suivant: "Impossible d'effectuer l'opération de refactorisation. Il y a eu des changements dans le code après que les utilisations ont été trouvées.".


3 Réponses :


0
votes

Convertissez / mettez à niveau votre projet pour utiliser androidX. Vous avez un mélange de support et androidX autour.

Je pense qu'il y a un élément de menu dans Androix Studio: Modifier -> Convertir en AndroidX

Soit ceci, soit vous essayez la suggestion du message d'erreur:

 Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.


1 commentaires

Salut, j'ai essayé de migrer vers androidX. Il affiche le message suivant: "Impossible d'effectuer l'opération de refactorisation. Il y a eu des changements dans le code après que les utilisations ont été trouvées.". Comment puis-je faire ce dernier?



0
votes

Le message d'erreur fournit la solution à votre problème

Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.

Vous devez ajouter une balise de remplacement à votre manifeste:

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-rc02] 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:5:5-19:19 to override.


1 commentaires

Salut, j'ai essayé de faire ça. Le problème persiste. Il affiche l'erreur suivante: la fusion du manifeste a échoué avec plusieurs erreurs, voir les journaux



0
votes

Vous avez utilisé une version de Firebase qui utilise des artefacts AndroidX .

En savoir plus sur androidx ici .

Pour résoudre ce problème:

  • Migrer le projet vers AndroidX et l'API cible 29

  • Utilisez une version inférieure de Firebase dans votre projet pour l'éviter.

Note de version Firebase


0 commentaires