the support manager library last from android android-studio android-support-library

library - install the android support repository from the android sdk manager



Android Support Repo 46.0.0 con Android Studio 2.3 (7)

Actualicé hoy mi repositorio de soporte a 46.0.0 cuando apareció la notificación de Android Studio.

Voy el error a continuación:

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) de [com.android.support:support-v13:25.3.0] AndroidManifest.xml: 27: 9-31 también es presente en [com.android.support:preference-v7:26.0.0-alpha1] AndroidManifest.xml: 24: 9-38 value = (26.0.0-alpha1). Sugerencia: agregue ''tools: replace = "android: value"'' al elemento en AndroidManifest.xml: 25: 5-27: 34 para anular.

Actualicé todas mis dependencias para usar la Revisión 26.0.0 Alpha 1 de 25.3.0, pero resulta que necesito subir el compileSdk de 25 a 26. No puede hacer eso si tiene AS 2.3, necesita obtener el versión alfa / beta inestable de canario.

Este enlace muestra los cambios: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-alpha1

Y con respecto a la migración al nuevo Android O, ese es el enlace: https://developer.android.com/preview/migration.html

Parece que usar una versión estable de AS no funcionará con un nuevo repositorio.

¿Cómo puedo volver a la versión 45 del repositorio de Android Studio en lugar de la nueva 46?

** Actualización: el manifiesto combinado muestra que uno de los manifiestos de biblioteca generados contiene

<meta-data android:name="android.support.VERSION" android:value="26.0.0-alpha1" />

Pero dado que es una edición de archivos generada es inútil, por eso por ahora me quedaría con la rev 45 hasta que el nuevo AS esté en una construcción estable


Cuál es el problema

Algunas bibliotecas dependen de la versión "X o más reciente" de las bibliotecas de soporte de Android, por lo que la resolución de dependencia de Gradle toma lo que sea el más nuevo disponible, ignorando que realmente tiene una versión precisa especificada en el bloque de dependencies .

Esto no es lo que quieres. Desea que todas las bibliotecas de soporte con la misma versión y la versión principal tengan que coincidir con la versión del SDK de compilación.

Cual es la solución

Afortunadamente, puede forzar una versión específica de la biblioteca de soporte.

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'') { // Skip multidex because it follows a different versioning pattern. if (!requested.name.startsWith("multidex")) { details.useVersion ''25.3.0'' } } } }

Por supuesto, reemplace la versión con lo que sea que esté usando.

Los valores de versión para bibliotecas de soporte en el bloque de dependecies ahora son irrelevantes.

Si tienes dudas

Este es un método bien documentado y está funcionando.

Qué puedes hacer para ayudar

Encuentre las bibliotecas que dependen de una variedad de versiones de bibliotecas de soporte

gradlew dependencies --configuration compile -p <module name> | grep ,

y que los autores de dichas bibliotecas sepan que deberían depender transitivamente de las bibliotecas de soporte más antiguas con las que su biblioteca puede hacer .

Esto tiene como objetivo evitar el problema por completo.


¡Esta es una solución temporal que no resuelve los problemas subyacentes! Me ayudó a continuar desarrollando software con modificaciones mínimas. Simplemente agregue esto al manifiesto principal:

<meta-data tools:replace="android:value" android:name="android.support.VERSION" android:value="25.3.0" />

Con suerte, esta entrada puede eliminarse nuevamente con una de las próximas actualizaciones del repositorio de soporte.

SOLUCIÓN: La solución marcada funcionó para mí al agregar lo siguiente a 4 de mis 10 archivos build.gradle:

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


Creo que la mejor solución es revertir la Biblioteca de soporte de Android a la versión 45.

Para hacer esto, abra este enlace (cambie la versión a lo que se adapte a sus necesidades)

https://dl-ssl.google.com/android/repository/android_m2repository_r45.zip

Cuando se descargue, descomprima y copie el repositorio de m2 en android-sdk-root-folder / extras / android. Asegúrese de eliminar el depósito m2 existente antes de descomprimir para evitar problemas.


Su es una solución para solucionarlo:

  1. Mover a la vista del explorador de proyectos
  2. Llegar al fondo de sus bibliotecas externas
  3. Vea qué biblioteca está usando 26.0.0-alpha6
  4. Ahora escriba esto en app.gradle sobre la base de la biblioteca en el Paso 3

Ex. en mi caso:

configurations.all { resolutionStrategy.force ''com.android.support:appcompat-v7:25.3.0'' resolutionStrategy.force ''com.android.support:support-v13:25.3.0'' }

Esto obligará al proyecto a usar la biblioteca mencionada.


para mí el problema era que las versiones no eran las mismas aquí

implementation ''com.android.support:appcompat-v7:**26.0.0-beta1**'' implementation ''com.android.support:support-v4:**26.0.0-beta1**'' implementation ''com.android.support:design:**26.0.0-beta1**''

y la vista de la tarjeta era

compile ''com.android.support:cardview-v7:26.1.0''

así que cambié las bibliotecas de versiones a ...

implementation ''com.android.support:appcompat-v7:26.1.0'' implementation ''com.android.support:support-v4:26.1.0'' implementation ''com.android.support:design:26.1.0''

espero esta ayuda, buena suerte


solo haz esto, eso es todo: -

compile ''com.android.support:appcompat-v7:25.3.1''

aquí v7: 25.3.1 es mi versión actual que acabas de poner urs.

en el archivo gradle de la aplicación


Paso 1

Para escapar de la comprobación de Gradle en busca de versiones incompatibles de com.android.support , una solución rápida es agregar el siguiente código en el módulo de la aplicación build.gradle .

dependencies { //noinspection GradleCompatible }

¡Esta es una solución temporal que no resuelve los problemas subyacentes! Ayudó a continuar desarrollando su aplicación con modificaciones mínimas.

Paso 2

Agregue esto al archivo de manifiesto principal AndroidManifest.xml .

<meta-data tools:replace="android:value" android:name="android.support.VERSION" android:value="25.3.1" />

Esta entrada se eliminará cuando esté disponible una de las próximas actualizaciones del repositorio de soporte.

Paso 3

Agregue el siguiente código al final del archivo build.gradle módulo de la aplicación:

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

Nota : se recomienda asegurarse de que sus bibliotecas de Gradle estén actualizadas y sean compatibles para evitar errores de tiempo de ejecución.