pie - Android: aparece el error "Error de fusión de manifiesto" después de actualizar a una nueva versión de gradle
android versiones (13)
Cambié todas las versiones de la biblioteca de soporte a 25.3.1 y trabajé como un encanto:
compile ''com.android.support:appcompat-v7:25.3.1''
compile ''com.android.support:design:25.3.1''
También necesita cambiar compileSdkVersion y targetSdkVersion a 25:
compileSdkVersion 25
targetSdkVersion 25
Después de aceptar actualizar el proyecto a la nueva versión de gradle, aparece este error:
Error:Execution failed for task '':app:processDebugManifest''.
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-alpha1) from [com.android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38
is also present at [com.android.support:design:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
Suggestion: add ''tools:replace="android:value"'' to <meta-data> element at AndroidManifest.xml:22:5-24:41 to override.
¿Como puedó resolver esté problema?
Este es el archivo
build.gradle
mi aplicación:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.sample.bookReader"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
...
}
dependencies {
compile fileTree(include: [''*.jar''], dir: ''libs'')
compile ''com.android.support:multidex:+''
compile ''com.android.support:appcompat-v7:26.0.0-alpha1''
compile ''com.android.support:cardview-v7:26.0.0-alpha1''
compile ''com.android.support:design:25+''
compile ''com.jakewharton:butterknife:8.2.1''
apt ''com.jakewharton:butterknife-compiler:8.2.1''
...
}
Y este es el
build.gradle
del proyecto:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:2.3.1''
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.8''
}
}
allprojects {
repositories {
jcenter()
maven { url "https://www.jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
¿Cómo soluciono este error mientras mantengo los cambios realizados al actualizar la versión de Gradle?
El error para mí fue:
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add ''tools:replace="android:value"'' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.
La solución para mí estaba en el archivo Gradle de mi proyecto. Necesitaba agregar mi versión de com.google.gms: google-services.
Estaba usando la versión 3.1.1:
classpath ''com.google.gms:google-services:3.1.1
Y el error se resolvió después de que lo coloqué en la versión 3.2.1:
classpath ''com.google.gms:google-services:3.2.1
Acababa de actualizar todas mis bibliotecas a la última, incluida la v27.1.1 de todas las bibliotecas de soporte y la v15.0.0 de todas las bibliotecas de Firebase cuando vi el error.
Está utilizando varias versiones de las bibliotecas de soporte de Android:
compile ''com.android.support:appcompat-v7:26.0.0-alpha1''
compile ''com.android.support:cardview-v7:26.0.0-alpha1''
compile ''com.android.support:design:25+''
Dos son
26.0.0-alpha1
, y uno está usando
25+
.
Elija una versión concreta y úsela para las tres.
Como su
compileSdkVersion
no es
O
, use
25.3.1
para las tres bibliotecas, lo que da como resultado:
compile ''com.android.support:appcompat-v7:25.3.1''
compile ''com.android.support:cardview-v7:25.3.1''
compile ''com.android.support:design:25.3.1''
He actualizado el antiguo proyecto de Android para Wear OS. Recibí este mensaje de error al compilar el proyecto:
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add ''tools:replace="android:value"'' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.
Mi build.gradle for Wear contiene estas dependencias:
dependencies {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.google.android.support:wearable:2.4.0''
implementation ''com.google.android.gms:play-services-wearable:16.0.1''
compileOnly ''com.google.android.wearable:wearable:2.4.0''}
SOLUCION :
Agregar la
implementation ''com.android.support:support-v4:28.0.0''
en las dependencias resolvió mi problema.
Intente eliminar los metadatos y reconstruir el proyecto.
Lo resuelvo poniendo esto al final del módulo de mi 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 ''26.0.0''
}
}
}
}
Me pasa lo mismo. Consulte Gradle -> Build Gradle -> y asegúrese de que la compatibilidad coincida tanto en las líneas de compilación "app compat" como "support design", deben tener la misma versión.
Luego, para estar súper seguro de que se lanzará sin problemas, vaya a Archivo -> Estructura del proyecto -> aplicación y verifique en la pestaña la propiedad de la versión de Herramientas de compilación, debe ser la misma que su línea de compilación de soporte, por si acaso la versión del SDK de destino como 25 también en la pestaña Sabores.
dependencies {
compile fileTree(include: [''*.jar''], dir: ''libs'')
androidTestCompile(''com.android.support.test.espresso:espresso-
core:2.2.2'', {
exclude group: ''com.android.support'', module: ''support-annotations''
})
*compile ''com.android.support:appcompat-v7:25.3.1''*
compile ''com.android.support.constraint:constraint-layout:1.0.2''
testCompile ''junit:junit:4.12''
*compile ''com.android.support:design:25.3.1''*
}
Eso es lo que hice y trabajé. ¡Buena suerte!
No estoy usando diferentes versiones de bibliotecas y obtuve el mismo error, sucedió después de eliminar
buildToolsVersion
en AS RC 1, pero agregar
tools:node="replace"
hizo el truco, solo agregue esto a su manifest.xml dentro de
<application ..../>
bloque:
<meta-data
tools:node="replace"
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
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''
}
}
}
}
Crédito a Eugen Pechanec
Puede averiguar qué biblioteca depende de una versión incorrecta de la biblioteca de soporte y excluirla así:
compile (''com.stripe:stripe-android:5.1.1'') {
exclude group: ''com.android.support''
}
stripe-android
en mi caso.
Se aceptan las respuestas, pero una cosa que también podría hacer es definir las bibliotecas a partir de la estructura de su proyecto. Lo que puedes hacer es:
- Comenta todas las bibliotecas en las que viene el problema
- Ir a la estructura de tu proyecto
- Agregue bibliotecas desde allí y se sincronizará automáticamente y el problema desaparecerá.
- Si el problema persiste, intente mirar desde el registro de errores que biblioteca exige después de seguir los 3 pasos anteriores.
Lo que sucede es que las bibliotecas predefinidas ahora están apagadas, ahora estoy tomando el appcompat: 26.0.0-alpha1 usa la versión anterior de las cosas cuando agrega algo nuevo e intenta resolverlo con las cosas viejas. Cuando lo agregue desde la estructura de su proyecto, agregará lo mismo pero con las nuevas cosas para resolverlo. Tu problema se resolvería.
intenta leer este enlace
Error: Error de ejecución para la tarea '': aplicación: processDevDebugManifest''. La fusión del manifiesto falló: Atributo metadatos#android.support.VERSION@value value = (25.3.0) luego usd VERSION 26.0.0
-
Actualice su biblioteca de soporte a la última versión
-
Abra el
Manifest File
y agréguelo al archivo de manifiesto -
<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
-
Y agregue para la vista de reciclaje en >>
build.gradle Module app
: -
compile ''com.android.support:recyclerview-v7:25.3.1''
-
Y haga clic en:
Sync Now