La fusión de manifiesto falló con múltiples errores en Android Studio


250

Entonces, soy un principiante en Android y Java. Acabo de empezar a aprender. Mientras estaba experimentando con Intent hoy, incurrí en un error.

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

Encontré algunas soluciones aquí e intenté implementarlas, pero no funcionó.

Este es mi build.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.0"

defaultConfig {
    applicationId "com.example.rohan.petadoptionthing"
    minSdkVersion 10
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
}

Este es mi AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>

package="com.example.rohan.petadoptionthing" >

<application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        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=".Second"
        />

    <activity android:name=".third"/>
    <activity android:name=".MainActivity"/>


</application>

Esta es mi primera semana con la codificación, lo siento si es algo realmente tonto. Soy realmente nuevo en esto y no encontré ningún otro lugar para preguntar. Lo siento si rompí alguna regla


2
eliminar la línea <activity android: name = ". MainActivity" /> en su archivo menifest.xml
Pankaj Talaviya

10
Para obtener información detallada sobre el error, puede consultar Gradle Console en Android Studio en la esquina inferior derecha.
DragonT

Espero que este enlace sea ​​de utilidad.
Mortreza AD

Obtuve el mismo error, pero lo resolví manteniendo el mismo SDK mínimo en el proyecto y la biblioteca.
Raja Jawahar

youtu.be/K88WaSm3q8Y "La fusión del manifiesto falló con múltiples errores en Android Studio"?
Roman Pokrovskij

Respuestas:


965

Abra el manifiesto de la aplicación ( AndroidManifest.xml) y haga clic en Merged Manifest. Mira la imagen a continuación:

función de fusión de manifiesto de Android

Desde la imagen puede ver Error en la columna derecha, intente resolver el error. Puede ayudar a alguien con el mismo problema. Lee más aquí .


55
brillante ... no puedo encontrar palabras para expresar mi agradecimiento
Shahzad Afridi

2
en mi caso lo desplacé un poco hacia abajo para ver los errores
CodeToLife

Desafortunadamente, no hay ninguna pestaña "Manifiesto combinado" en Android Studio 3.5.2.
FractalBob

@FractalBob Estoy ejecutando 3.5.2 y veo la pestaña 'Manifiesto combinado' ... quizás tenga algún otro error antes de que se combinen los manifiestos.
sonyisda1

@ sonyisda1 ¿Está ejecutando en un entorno Linux? Tengo Ubuntu 18.04 LTS.
FractalBob

120

Eliminar <activity android:name=".MainActivity"/>de su archivo mainfest. Como ya lo ha definido como:

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

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

Entonces, archivo de manifiesto que muestra ambigüedad.


31
Es una lástima que esta sea la respuesta aceptada, cuando solo corrige el código de Rowen pero es completamente inútil para cualquier otra persona. La respuesta de CLIFFORD realmente muestra cómo "ver los registros" como sugiere el mensaje de error.
Andrew Koster

Funciona muy bien, solo verifica y elimina cualquier entrada duplicada en el archivo AndroidManifest.xml.
vishwajit76

61

Para mí ESTO funciona

Encontrar errores de fusión en AndroidManifest.xml

ingrese la descripción de la imagen aquí

Haga clic en Manifiesto combinado en AndroidManifest.xml

ingrese la descripción de la imagen aquí

Puede ver el error de fusión de manifiesto en la columna derecha. Puede ayudar a resolver este problema.


3
Esta es una solución genérica para este problema. Esto le ayuda a encontrar la verdadera razón de cualquier problema relacionado con esto.
JoeGalind

60

También estaba enfrentando los mismos problemas, y después de mucha investigación encontré la solución:

  1. La versión de min sdk debe ser la misma que la de los módulos que está utilizando, por ejemplo: la versión de min sdk de su módulo es 14 y la versión de min sdk de su aplicación es 9 Debe ser la misma.
  2. Si la versión de compilación de su aplicación y módulos no es la misma. De nuevo, debería ser el mismo ** En resumen, el build.gradlearchivo de aplicación y el manifiesto deben tener las mismas configuraciones **
  3. No hay duplicación como los mismos permisos agregados en el archivo de manifiesto dos veces, la misma actividad se menciona dos veces.
  4. Si ha eliminado alguna actividad de su proyecto, elimínela también de su archivo de manifiesto.
  5. A veces es debido a la etiqueta, icono, etc. etiqueta del archivo de manifiesto:

a) Agregue la xmlns:toolslínea en la etiqueta de manifiesto.

b) Agregar tools:replace=o tools:ignore=en la etiqueta de la aplicación.

Ejemplo:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.slinfy.ikharelimiteduk"
    xmlns:tools="http://schemas.android.com/tools"
    android:versionCode="1"
    android:versionName="1.0" >

  <application
      tools:replace="icon, label"
      android:label="myApp"
      android:name="com.example.MyApplication"
      android:allowBackup="true"
      android:hardwareAccelerated="false"
      android:icon="@drawable/ic_launcher"
      android:theme="@style/Theme.AppCompat" >
  </application>

</manifest>
  1. Si dos dependencias no son de la misma versión, ejemplo: está utilizando la dependencia para appcompat v7: 26.0.0 y para facebook com.facebook.android:facebook-android-sdk:[4,5) facebook usa la vista de tarjeta de la versión com.android. soporte: cardview-v7: 25.3.1 y appcompat v7: 26.0.0 usa cardview de la versión v7: 26.0.0, por lo que hay discrepancia en dos bibliotecas y, por lo tanto, da error

Error: Falló la ejecución de la tarea ': aplicación: processDebugManifest'.

La fusión del manifiesto falló: Atributo metadatos#android.support.VERSION@value value = (26.0.0-alpha1) de [com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml: 27: 9 -38 también está presente en [com.android.support:cardview-v7:25.3.1] AndroidManifest.xml: 24: 9-31 value = (25.3.1). Sugerencia: agregue 'tools: replace = "android: value"' al elemento en AndroidManifest.xml: 25: 5-27: 41 para anular.

Entonces, al usar appcompat de la versión 25.3.1, podemos evitar este error

Al considerar los puntos anteriores en mente, se librará de este problema irritante. También puedes consultar mi blog https://wordpress.com/post/dhingrakimmi.wordpress.com/23


1
en mi caso se debió al tema del módulo que agregué, así que utilicé como herramientas: reemplazar "icono, etiqueta, tema"
turbandroid

en mi caso se debió al tema del módulo que agregué, así que utilicé como herramientas: reemplazar "icon, label, theme" y xmlns: tools = " schemas.android.com/tools ". gracias @ O'one
alfo888_ibg 23/03/18

14

Además de las soluciones disponibles, verifique esto también.
Si ha configurado android:allowBackup="false"en su, AndroidManifest.xmlentonces puede haber un conflicto android:allowBackup="true"en otras dependencias.

Solución
Tal como lo sugiere @CLIFFORD PY, cambie a Merged Manifestsu AndroidManifest.xml. Android Studio sugerirá añadir tools:replace="android:allowBackup"en <application />en tu AndroidManifest.xml.


12

Estaba enfrentando el mismo problema y acabo de agregar una línea en mi manifest.xml y funcionó para mí.

tools:replace="android:allowBackup,icon,theme,label,name"> 

agregue esta línea debajo

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:screenOrientation="portrait"
    android:supportsRtl="true"
    android:theme="@style/AppThemecustom"
    tools:replace="android:allowBackup,icon,theme,label">

Espero que ayude.


¡Muchas gracias! Estaba enfrentando este problema en un escenario muy específico causado por la página de soporte de Zendesk, al hacer clic en "adjuntar archivo". Intenté tantas respuestas de diferentes preguntas y solo tu comentario ayudó.
Natalie

@Natalie, me alegro de que haya ayudado :)
Pre_hacker

11

Simplemente agregue el código a continuación en la etiqueta de la aplicación Manifiesto de su proyecto ...

<application
        tools:node="replace">

Muchas gracias
tej shah

8

En mi caso, estaba mostrando un error porque había una redundancia en el <uses-permission>elemento. Por lo tanto, verifique en su AndroidManifest.xmlarchivo lo mismo.

La versión de Android Studio es 3.0.1

El sistema operativo es Windows 7

Aquí está la captura de pantalla para referencia.

Captura de pantalla que muestra redundancia en el archivo de manifiesto.


Si bien esto se publicó antes de la respuesta de @ CLIFFORD-PY, encontrar errores de fusión a través de la vista Manifiesto fusionado detectará este error redundante en particular.
sonyisda1


7

Por lo general, ocurre cuando tiene errores en su manifiesto. Abra AndroidManifest.xml. Haga clic en la pestaña de manifiesto combinado. Los errores se pueden ver allí. También incluya sugerencias mencionadas allí. Cuando tuve un problema similar al importar com.google.android.gms .maps.model.LatLng, me sugirió incluir herramientas: overrideLibrary = "com.google.android.gms.maps" en la etiqueta de la aplicación y la compilación fue exitosa.


3

Mi caso lo he arreglado

build.gradle (Módulo: aplicación)

defaultConfig {
----------
multiDexEnabled true
}
dependencies {
    ...........
    implementation 'com.google.android.gms:play-services-gcm:11.0.2'
    implementation 'com.onesignal:OneSignal:3.+@aar'
    }

Esta respuesta se envió a la notificación push de OnSignal


2
  1. En AndroidManifest.xml:

    • En la aplicación, agregue tools:replace="android:icon, android:themey
    • En la raíz del Manifiesto, agregue xmlns:tools="http://schemas.android.com/tools
  2. En build.gradle:

    • En la raíz, agregue useOldManifestMerger true

2

La versión minium sdk debe ser la misma que la de los módulos / lib que está utilizando. Por ejemplo: la versión min sdk de su módulo es 26 y la versión min sdk de su aplicación es 21 Debe ser la misma.


1

Durante los últimos días también estaba pasando por el mismo problema. Pero después de mucha investigación finalmente encontré una solución para esto.
Para resolver este problema, lo que hay que hacer es:
1. Compruebe si su proyecto de build.gradle archivo y del módulo build.gradle archivo contienen mismas versiones de todas las dependencias.
2. Asegúrese de que compileSdkVersion , buildToolsVersion , minSdkVersion y targetSdkVersion de su proyecto coincidan con el de los módulos o bibliotecas que ha agregado al proyecto.

compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "com.example.appname"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 22
    versionName "2.0.3"

}

Espero que esto ayude.


1

Si después de agregar un módulo de biblioteca de Android y obtiene este error.
Se puede arreglar por simple quitar el android:label="@string/app_name"de la AndroidManifest.xmlde su módulo Biblioteca Android


1

Abra su consola Gradle, luego verá que Gradle le sugiere agregar la línea particular (como: herramientas: reemplazar = "android: allowBackup" o herramientas: reemplazar = "android: etiqueta", etc.). Agregue esa línea en su archivo de manifiesto bajo la etiqueta y sincronice gradle, eso es todo.


1

En mi caso, sucedió por dejar un filtro de intención vacío dentro de la etiqueta Actividad

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

            <intent-filter>

            </intent-filter>

    </activity> 

Así que solo eliminarlos resolvió el problema.

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
    </activity> 

0

Como novato en Android Studio, en mi caso, había movido un proyecto existente de Eclipse a Android Studio y descubrí que había una definición duplicada de una actividad dentro de mi Manifest.xml que Eclipse no había recogido. Un error de Gradle.

Encontré esto yendo a la consola de Gradle (abajo a la derecha de la pantalla).


0

Sucedió conmigo dos veces cuando refractaria (Cambiar nombre con MAYÚS + F6) el nombre de un campo en nuestros archivos y le pide que lo cambie en todas partes y nosotros, sin prestar atención, cambiamos el nombre en todas partes. Por ejemplo, si tiene un nombre de variable "id" en su clase Java y lo renombra con SHIFT + F6. Si no presta atención al siguiente cuadro de diálogo que le preguntará dónde va a cambiar la identificación y marque la casilla de verificación, todo cambiará la identificación en sus archivos de diseño desde el nuevo valor.


0

esto es un error muy simple que solo ocurre cuando define una llamada de actividad dos veces en el archivo mainifest.xml Ejemplo como

<activity android:name="com.futuretech.mpboardexam.Game" ></activity>

//and launcher also------like that



//solution:use only one 

0

Ponga esto al final de su módulo de aplicación build.gradle:

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.0'
        }
    }
}}

de esto


0

Complemente la respuesta Phan Van Linh. Eliminé estas líneas:

  android:icon="@mipmap/ic_launcher"
  android:label="name"

0

Simplemente migre a Androidx como se muestra arriba y luego configure la versión mínima de SDK en 26 ... sin dudas, esto funciona perfectamente


0

El siguiente truco funciona:

  1. Agregue la xmlns:tools="http://schemas.android.com/tools"línea en la etiqueta de manifiesto
  2. Agregar tools:replace="android:icon,android:theme,android:allowBackup,label,name" en la etiqueta de la aplicación


0

En mi caso, estaba usando algunas anotaciones de la biblioteca jetbrains. Eliminé esas anotaciones y dependencias y funcionó bien.

Por lo tanto, compruebe cuidadosamente las bibliotecas en el código y las dependencias de Android.


0

Si está utilizando varios manifestPlaceholderelementos en subuild.gradle archivo, debe agregarlos como elementos de matriz, en lugar de elementos separados.

Por ejemplo, esto provocará un error de compilación o error de compilación: "java.lang.RuntimeException: la fusión del manifiesto falló con varios errores":

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1"]
        manifestPlaceholders = [myKey2: "myValue2"] // Error!
    }
}

Esto solucionará el error:

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1", myKey2: "myValue2"]
    }
}

0

Esto se debe a que está utilizando la nueva biblioteca de materiales con la biblioteca de soporte heredada.

Tienes que migrar android.supporta androidxpara poder usar com.google.android.material.

Si está utilizando Android Studio v 3.2 o superior, simplemente

ir al refactorizador ---> MIGRAR AL ANDROID X.

Haga una copia de seguridad de su proyecto.


0

Estaba usando FirebaseUI Libraryjunto con el Facebook SDK Library, lo que me estaba causando el problema.

implementation 'com.firebaseui:firebase-ui-database:0.4.4'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'

Y desde [aquí] [1], me libré de este problema.

Con la bibliotecalatest update de FirebaseUI , la versión anterior de Facebook SDK también forma parte de ella.

Si está utilizando ambas bibliotecas, elimine la biblioteca del SDK de Facebook .

https://github.com/firebase/FirebaseUI-Android/issues/230

ACTUALIZAR

A partir de las Android Studio 3.0versiones y posteriores, app.gradlese requiere el archivo para usar implementationo en apilugar de compileagregar las dependencias a la aplicación.


0

Después de ver la respuesta de CLIFFORD para ver el error, lo que me ayudó a resolver este problema fue renombrar 'android: namex' a 'android: name' en la etiqueta de acción de filtro de intención. En caso de que la misma solución ayude a alguien más.

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:namex="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.