Conflicto con la dependencia 'com.android.support:support-annotations' en el proyecto ': app'. Las versiones resueltas para la aplicación (26.1.0) y la aplicación de prueba (27.1.1) difieren.

106

Soy nuevo en el desarrollo de aplicaciones de Android. Cuando intenté crear un nuevo proyecto, Android Project ... apareció el siguiente mensaje ...

Error: la ejecución falló para la tarea ': app: preDebugAndroidTestBuild'.

Conflicto con la dependencia 'com.android.support:support-annotations' en el proyecto ': app'. 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 detalles. 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 obtuve

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ó.

hashTag_bibu
fuente
Compruebe esta pregunta: stackoverflow.com/q/43817004/9611523 . Espero que te ayude.
1
La actualización de Android Studio (así como el emulador y algunas otras cosas después de eso) resolvió ese problema para mí.
El problema se debe a la anotación gradle que no viene de forma predeterminada en la creación de nuevos proyectos de Android Studio. Puede que esto te ayude: readyandroid.wordpress.com/…
Listo para Android el

Respuestas:

182

Según su captura de pantalla, encontré dos soluciones que funcionan:

Primera solución : agregue a las dependencias de su módulo 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 compileaimplementation

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 compileSdkVersionlínea para ser

compileSdkVersion rootProject.ext.compileSdkVersion

y en la dependenciessección 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 compileaimplementation

Para conocer la diferencia entre compiley implementationmire esto ¿Cuál es la diferencia entre implementación y compilación en gradle?

emadabel
fuente
4
Sugeriría usar 'implementación' en lugar de compilar
SanVed
60

Agregue la siguiente línea 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.

Configuraciones todo el bloque

  1. el bloque configurations.all solo será útil si desea que su sdk objetivo sea 26. Si puede cambiarlo a 27, el error desaparecerá sin agregar el bloque de configuración en el archivo app.gradle.

  2. Hay una forma más si eliminara toda la implementación de prueba del archivo app.gradle, resolvería el error y, en esto, tampoco necesita agregar el bloque de configuración ni cambiar la versión de targetdk.

Espero que ayude.

Áspero Jain
fuente
Gracias, ahorre mi tiempo
Manikandan K
1
@ManikandanK feliz de ayudar!
Harsh Jain
¡Alabado sea usted por dar instrucciones completas! (Tantas respuestas sobre este tipo de temas son como "Agregue esto:" force 'com.android.support:support-annotations:26.1.0' "con poco o ningún contexto (Lamentablemente, sin embargo, sigo obteniendo lo mismo error de compilación, en mi caso "No se pudo encontrar com.android.support:support-annotations:27.0.0. Requerido por: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz
35

Si usa la versión 26, la versión de dependencias internas debe 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 usa la versión 27, la versión de dependencias internas debe 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'
Harish
fuente
2
Dios los bendiga, ¡que las bibliotecas de soporte de Android se pudran en el infierno!
Muhammad Naderi
Entonces, ¿el asistente de estudio de Android crea un proyecto desde cero CON errores? ¬¬
Sebastian Breit
¿Qué hay de 28 ?
alizulfuqar
27

Si usa Android Studio 3.1. + O superior

simplemente ponga esto en sus dependencias de gradle:

implementation 'com.android.support:support-annotations:27.1.1'

En general, así:

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'
}
Uray Febri
fuente
Gracias amigo mucho amor
amilab
23

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: app gradle

implementation ('com.android.support:support-annotations:27.1.1')

Espero que esto resuelva tu problema ;)

Editar

Casi lo olvido, puede declarar una sola 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 gradle superior) y declare su apoyo, o solo para este ejemplo, anotación versión var

ext.annotation_version = "27.1.1"

Luego, en su módulo gradle reemplácelo 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 bloque, ni el rootprojectprefijo.

desgraci
fuente
1
Gracias desgraci, la solución anterior me ayudó
BharathRao
después de agregar esta línea ahora recibo el error "Error: Error de ejecución para la tarea ': aplicación: processDebugManifest'.> La fusión del manifiesto falló con varios errores, consulte los registros" por favor, ayúdenme cómo puedo resolverlo
Basant
@Basant Necesitaría ver cuál es el problema, ya que es un problema ejecutar su gradle, sería mejor abrir una pregunta para esto
desgraci
Perdón por la respuesta tardía @desgraci, resolví este problema actualizando IDE
Basant
¡@Basant me alegra escuchar eso!
desgraci
9

Agregar esto a build.gradle (aplicación de módulo) funcionó para mí:
compile 'com.android.support:support-annotations:27.1.1'

San Askaruly
fuente
7

No te preocupes es simple:

Vaya a la estructura del directorio "Proyecto" y en ella vaya a "Gradle Scripts" y dentro de él vaya a "build.gradle (Módulo: aplicación)" y haga doble clic en él.

Ahora: desplácese hacia abajo en el programa y, en ese momento, vaya a la sección de dependencias: como 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, elimine 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'

}


¡¡RECONSTRUYE LA APLICACIÓN Y FUNCIONA !!

Manika Agrawal
fuente
No explicó lo que eliminó / agregó. ¿Qué pasa si las bibliotecas de pruebas se necesitan aquí?
TheRealChx101
3

Vaya a build.gradle (aplicación de módulo) en su proyecto:

ingrese la descripción de la imagen aquí

Siga la foto y cambie esa versión:

compileSdkVersion: 27
targetSdkVersion: 27

y si android studio versión 2: cambie la línea con esta línea:

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

más Cambie la línea con esta línea:

implementation 'com.android.support:appcompat-v7:27.1.1'

y con suerte, resolverá su error.

Maizied Hasan Shuvo
fuente
2

Agregue esto a su archivo gradle.

implementation 'com.android.support:support-annotations:27.1.1'
Jeffy
fuente
1

Otra forma sencilla de resolver este problema es editar su build.gradle(aplicación):

  1. Ir a androidetiquetar y cambiar compileSdkVersion 26acompileSdkVersion 27
  2. Ir a defaultConfigetiquetar y cambiar targetSdkVersion 26atargetSdkVersion 27
  3. Tengo que dependenciesetiquetar y cambiar implementation 'com.android.support:appcompat-v7:26.1.0'aimplementation 'com.android.support:appcompat-v7:27.1.1'
Realdinho
fuente
1

Tengo el mismo problema, en build.gradle (Módulo: aplicación) agregue la siguiente línea de código dentro de las dependencias:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Funcionó para mi perfectamente

Mohammed H. Hannoush
fuente
1

Actualización importante

Vaya al nivel de proyecto build.gradle, defina 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 la aplicación build.gradle y use variables globales

app 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

Sentí que cuando tenía versiones actualizadas de todo: gradle, sdks, bibliotecas, etc., me enfrentaba a menos errores. Porque los desarrolladores están trabajando arduamente para facilitar el desarrollo en Android Studio.

Tener siempre las últimas versiones pero estables. Las versiones inestables son alpha, betayrc , caso omiso de ellos en vías de desarrollo.

He actualizado todo lo que se muestra a continuación en mis proyectos y ya no me enfrento a estos errores.

¡Feliz codificación! :)

Khemraj
fuente
0

Si cambiar la versión del SDK de destino no ayuda, entonces si tiene alguna dependencia con la versión 3.0.2, cámbiela a 3.0.1.

por ejemplo, cambiar

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

a

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'
Harshad
fuente
0

Una mejor solución se explica en la explicación oficial . Dejé la respuesta que he dado antes debajo de la línea horizontal.

Según la solución allí:

Use una etiqueta externa y escriba el siguiente código a continuación en el archivo build.gradle de nivel superior . Vas a cambiar la versión a una variable en lugar de un número de versión estático.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Cambie los números de versión estática en su archivo build.gradle de nivel de aplicación , el que tiene (Module: app)near.

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
}

Sincronice su proyecto y no obtendrá errores.


No es necesario agregar nada a los scripts de Gradle. Instale los SDK necesarios y se solucionará el problema.

En su caso, instale las siguientes bibliotecas desde Preferencias> SDK de Android o Herramientas> Android> SDK Manager

ingrese la descripción de la imagen aquí

Atún Onur
fuente
0

Agregue esta línea debajo de las dependencias en su archivo gradle

compile 'com.android.support:support-annotations:27.1.1'
Pavitha
fuente