pie - android versiones
Conflicto con la dependencia ''com.android.support:support-annotations'' en el proyecto '': aplicación''. Las versiones resueltas para la aplicación(26.1.0) y la aplicación de prueba(27.1.1) difieren. (15)
Actualización importante
Ir a nivel de proyecto build.gradle, definir variables globales
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlinVersion = ''1.2.61''
ext.global_minSdkVersion = 16
ext.global_targetSdkVersion = 28
ext.global_buildToolsVersion = ''28.0.1''
ext.global_supportLibVersion = ''27.1.1''
}
Vaya al nivel de aplicación build.gradle y use variables globales
aplicación build.gradle
android {
compileSdkVersion global_targetSdkVersion
buildToolsVersion global_buildToolsVersion
defaultConfig {
minSdkVersion global_minSdkVersion
targetSdkVersion global_targetSdkVersion
}
...
dependencies {
implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
// and so on...
}
alguna biblioteca build.gradle
android {
compileSdkVersion global_targetSdkVersion
buildToolsVersion global_buildToolsVersion
defaultConfig {
minSdkVersion global_minSdkVersion
targetSdkVersion global_targetSdkVersion
}
...
dependencies {
implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
// and so on...
}
La solución es hacer que sus versiones sean las mismas que en todos los módulos. Para que no tengas conflictos.
Consejos importantes
Me sentí cuando tengo versiones actualizadas de todo: gradle, sdks, bibliotecas, etc. luego me enfrento a menos errores. Porque los desarrolladores están trabajando duro para facilitar el desarrollo en Android Studio.
Siempre tenga las versiones más recientes pero estables. Las versiones
inestables son
alpha
,
beta
y
rc
, ignorándolas en el desarrollo.
He actualizado todo lo que aparece a continuación en mis proyectos y ya no enfrento estos errores.
- Actualizar Android Studio ( release seguimiento)
-
Nivel de proyecto
build.gradle
-classpath ''com.android.tools.build:gradle:3.2.0''
( Seguimiento de la versión deandroid.build.gradle
y this ) -
Se ha actualizado
buildToolVersion
(seguimiento de la versión buildToolVersion ) -
Tener la última
compileSdkVersion
de la plataforma de seguimientocompileSdkVersion
ytargetSdkVersion
- Se han actualizado las versiones de la biblioteca, porque después de las actualizaciones anteriores, es necesario. (@Ver Cómo actualizar )
¡Feliz codificación! :)
Soy nuevo en el desarrollo de aplicaciones para Android. Cuando intenté crear un nuevo proyecto, el Proyecto de Android ... apareció el siguiente mensaje ...
Error: la ejecución falló para la tarea '': aplicación: preDebugAndroidTestBuild''.
Conflicto con la dependencia ''com.android.support:support-annotations'' en el proyecto '': aplicación''. Las versiones resueltas para la aplicación (26.1.0) y la aplicación de prueba (27.1.1) difieren. Consulte https://d.android.com/r/tools/test-apk-dependency-conflicts.html para obtener más información. Información: Tareas de Gradle [: app: generateDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar]
Esta es la captura de pantalla de mi proyecto. Haga clic aquí para ver la captura de pantalla del error que recibí.
También intenté agregar este código a mi dependencia .. androidTestCompile ''com.android.support:support-annotations:23.3.0'' esto no funcionó. También probé 27.1.1 y 26.1.0 .. eso tampoco funcionó.
Agrega esto a tu archivo de gradle.
implementation ''com.android.support:support-annotations:27.1.1''
Agregar esto a build.gradle (aplicación de módulo) funcionó para mí:
compile ''com.android.support:support-annotations:27.1.1''
Agregue esta línea bajo las dependencias en su archivo de gradle
compile ''com.android.support:support-annotations:27.1.1''
Agregue la línea de abajo en su archivo app.gradle antes del bloque de dependencias.
configurations.all {
resolutionStrategy {
force ''com.android.support:support-annotations:26.1.0''
}
}
También hay una captura de pantalla a continuación para una mejor comprensión.
-
el bloque configurations.all solo será útil si desea que su SDK de destino sea 26. Si puede cambiarlo a 27, el error desaparecerá sin agregar el bloque de configuración en el archivo app.gradle.
-
Hay una forma más si eliminaría toda la implementación de prueba del archivo app.gradle, resolvería el error y en este caso no necesita agregar el bloque de configuración ni cambiar la versión de diana de los objetivos.
Espero que ayude.
Basado en su captura de pantalla encontré dos soluciones de trabajo:
Primera solución : agregue a las dependencias de su módulo de gradle esta línea
compile ''com.android.support:support-annotations:27.1.1''
y sincroniza tu proyecto
Nota:
si está utilizando Android Studio 3+, cambie la
compile
a la
implementation
Segunda solución : configure las propiedades de todo el proyecto que se encuentran en la documentación https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties
En el proyecto Gradle agregue esta línea:
// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
// The following are only a few examples of the types of properties you can define.
compileSdkVersion = 26
// You can also use this to specify versions for dependencies. Having consistent
// versions between modules can avoid behavior conflicts.
supportLibVersion = "27.1.1"
}
Luego, para acceder a esta sección, cambie la línea
compileSdkVersion
para que sea
compileSdkVersion rootProject.ext.compileSdkVersion
y en
dependencies
sección de
dependencies
, cambie la biblioteca importada para que sea así:
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
y sincroniza tu proyecto
Nota:
si está utilizando Android Studio 3+, cambie la
compile
a la
implementation
Para la diferencia entre
compile
e
implementation
mire esto.
¿Cuál es la diferencia entre implementación y compilación en gradle?
Esto se debe a un conflicto de versiones, para resolverlo, simplemente fuerce una actualización de su versión de anotaciones de soporte, agregando esta línea en su módulo: aplicación gradle
implementation (''com.android.support:support-annotations:27.1.1'')
Espero que esto resuelva tu problema ;)
Editar
Casi lo olvido, puede declarar una propiedad adicional ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) para la versión, vaya a su proyecto (o su archivo superior) gradle, y declare su soporte, o solo para este ejemplo, la versión de anotación var
ext.annotation_version = "27.1.1"
Luego en su módulo gradle reemplazarlo con:
implementation ("com.android.support:support-annotations:$annotation_version")
Esto es muy similar a la solución @emadabel, que es una buena alternativa para hacerlo, pero sin el bloqueo, o el prefijo de proyecto de
rootproject
.
No te preocupes, es simple:
Vaya a la estructura del directorio "Proyecto" y, a continuación, vaya a "Secuencias de comandos de Gradle" y en su interior vaya a "build.gradle (Module: app)" y haga doble clic en él.
Ahora: desplácese hacia abajo en el programa y, a continuación, vaya a la sección de dependencias: Me gusta a continuación
dependencias {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.android.support:appcompat-v7:26.1.0''
implementation ''com.android.support.constraint:constraint-layout:1.1.2''
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''
}
Ahora en esto Borre las dos últimas líneas de código y reconstruya la aplicación y ahora funcionará
Las dependencias deben ser:
dependencias {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.android.support:appcompat-v7:26.1.0''
implementation ''com.android.support.constraint:constraint-layout:1.1.2''
testImplementation ''junit:junit:4.12''
}
RECONSTRUIR LA APLICACION Y FUNCIONA !!
Otra forma sencilla de resolver este problema es editar tu
build.gradle
(aplicación):
-
Vaya a la etiqueta de
android
y cambiecompileSdkVersion 26
acompileSdkVersion 27
-
Vaya a la etiqueta
defaultConfig
y cambietargetSdkVersion 26
portargetSdkVersion 27
-
Llegar a
dependencies
etiqueta dedependencies
y cambiar laimplementation ''com.android.support:appcompat-v7:26.1.0''
a laimplementation ''com.android.support:appcompat-v7:27.1.1''
Si cambiar la versión de sdk de destino no ayuda, entonces si tiene alguna dependencia con la versión
3.0.2
, cámbielo a
3.0.1
.
por ejemplo, cambio
androidTestImplementation ''com.android.support.test.espresso:espresso-contrib:3.0.2''
a
androidTestImplementation ''com.android.support.test.espresso:espresso-contrib:3.0.1''
Si usa la versión 26, la versión de las dependencias debería ser 1.0.1 y 3.0.1 , es decir, de la siguiente manera:
androidTestImplementation ''com.android.support.test:runner:1.0.1''
androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.1''
Si utiliza la versión 27, la versión de las dependencias debería ser 1.0.2 y 3.0.2 , es decir, de la siguiente manera
androidTestImplementation ''com.android.support.test:runner:1.0.2''
androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.2''
Si usas Android Studio 3.1. + O superior
solo pon esto en tus dependencias de gradle:
implementation ''com.android.support:support-annotations:27.1.1''
En general de esta manera:
dependencies {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.android.support:appcompat-v7:26.1.0''
implementation ''com.android.support.constraint:constraint-layout:1.1.2''
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''
implementation ''com.android.support:support-annotations:27.1.1''
}
Tengo el mismo problema, en build.gradle (Module: app) agregue la siguiente línea de código dentro de las dependencias:
dependencies
{
...
compile ''com.android.support:support-annotations:27.1.1''
}
Me funcionó perfectamente
Una mejor solución se explica en la explicación oficial . Dejé la respuesta que he dado antes bajo la línea horizontal.
Según la solución hay:
Use una etiqueta externa y escriba el siguiente código a continuación en el archivo build.gradle de nivel superior . Va a cambiar la versión a una variable en lugar de a un número de versión estática.
ext {
compileSdkVersion = 26
supportLibVersion = "27.1.1"
}
Cambie los números de versión estática en su archivo
build.gradle a
nivel de
aplicación
, el que tiene
(Module: app)
cerca.
android {
compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
// the below lines will stay
}
// here there are some other stuff maybe
dependencies {
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
// the below lines will stay
}
Sincroniza tu proyecto y no obtendrás errores.
No es necesario agregar nada a los scripts de Gradle. Instale los SDK necesarios y el problema se resolverá.
En su caso, instale las siguientes bibliotecas desde Preferencias> SDK de Android o Herramientas> Android> Administrador de SDK
Vaya a build.gradle (aplicación de módulo) en su proyecto:
Sigue la foto y cambia esas versiones:
compileSdkVersion: 27
targetSdkVersion: 27
y si Android Studio versión 2: cambia la línea con esta línea:
compile ''com.android.support:appcompat-v7:27.1.1''
de lo contrario cambia la línea con esta línea:
implementation ''com.android.support:appcompat-v7:27.1.1''
Y con suerte, resolverás tu error.