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:
- Mover a la vista del explorador de proyectos
- Llegar al fondo de sus bibliotecas externas
- Vea qué biblioteca está usando 26.0.0-alpha6
- 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.