web-dev-qa-db-fra.com

Échec de la fusion du manifeste, erreur lors de la compilation

Depuis le téléchargement du dernier SDK et l'installation de Android Studio, mon projet n'a pas pu être construit. J'obtiens le message suivant:

La fusion du manifeste a échoué avec plusieurs erreurs


Mon application Gradle:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.app.clupascu.oavm"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.Android.support:appcompat-v7:28.0.0'
    implementation 'com.Android.support:design:28.0.0'
    implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.github.chrisbanes:PhotoView:2.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'
}

Mon manifeste

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    package="com.app.clupascu.oavm">

    <application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:roundIcon="@mipmap/ic_launcher_round"
        Android:supportsRtl="true"
        Android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:replace="Android:appComponentFactory">

        <activity
            Android:name=".MainPage"
            Android:label="@string/app_name">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            Android:name=".FirstObchodni"
            Android:label="@string/obchodn_akademie"/>

        <activity Android:name=".SecondObchodni"
            Android:label="@string/_2_obchodn_akademie"/>

        <activity Android:name=".VysiiOdborna"
            Android:label="@string/_3_vy_odborn_kola"/>
    </application>

</manifest>

Dans le manifeste fusionné est écrit ceci:

Merging Errors: Error: tools:replace specified at line:6 for attribute Android:appComponentFactory, but no new value specified app main manifest (this file), line 5 Error: Validation failed, exiting app main manifest (this file) 

J'ai essayé beaucoup de solutions à partir d'autres questions, mais sans résultat, merci beaucoup.

6
simpller

"tools: replace =" Android: appComponentFactory "<- cette ligne vous dites à la fusion manifeste que vous allez fournir une nouvelle valeur pour l'attribut Android: appComponentFactory mais vous ne le faites pas. Donc, comme je le vois, vous avez deux options:

  1. Supprimer les outils: replace = "Android: appComponentFactory"

  2. Fournir une nouvelle valeur pour Android: attribut appComponentFactory "

J'espère que ça aide.

3
Nikolay Ivanov

J'ai fait face à la même situation lors de la mise en œuvre de l'API Maps dans mon application. Je l'ai résolu en ajoutant le code suivant dans le fichier AndroidManifest.xml et Gradle.properties.

Dans AndroidMainfest.xml a ajouté ce code

    Android:appComponentFactory="androidx.core.app.CoreComponentFactory"
    tools:replace="Android:appComponentFactory"

Dans gradle.properties a ajouté ce code

   Android.useAndroidX=true
   Android.enableJetifier=true
4
sai Pavan Kumar