Conflicto con la dependencia 'com.android.support:support-annotations'. Las versiones resueltas para la aplicación (23.1.0) y la aplicación de prueba (23.0.1) difieren


119

Al construir me sale el siguiente error:

Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ.

Estas son mis dependencias de gradle

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:23.1.0'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.snappydb:snappydb-lib:0.5.2'
    compile 'com.esotericsoftware.kryo:kryo:2.24.0'
    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'io.reactivex:rxandroid:1.0.1'
    compile 'io.reactivex:rxjava:1.0.14'
    compile 'com.google.android.gms:play-services-location:8.1.0'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'org.apache.commons:commons-lang3:3.4'
    testCompile 'junit:junit:4.12'
    testCompile 'org.hamcrest:hamcrest-library:1.3'
    testCompile 'org.mockito:mockito-core:1.10.19'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
}

¿Cómo puedo arreglar esto?


Puedo decirte que la dependencia 23.1.0 proviene de la appcompat lib, porque eso incluye las anotaciones lib. El 23.0.1 no lo sé
Tim

Tampoco funciona si vuelvo a cambiar appcompat a 23.0.1
barq

Acabo de reemplazar 23.1.0 por 23.0.1, en todas partes en dependencia, funcionó para mí.
Shahzad Afridi

Agregue la dependencia de anotación relacionada con su error de versión. readyandroid.wordpress.com/…
Listo para Android el

Respuestas:


208

Puede forzar la biblioteca de anotaciones en su prueba usando:

androidTestCompile 'com.android.support:support-annotations:23.1.0'

Algo como esto:

  // Force usage of support annotations in the test app, since it is internally used by the runner module.
  androidTestCompile 'com.android.support:support-annotations:23.1.0'
  androidTestCompile 'com.android.support.test:runner:0.4.1'
  androidTestCompile 'com.android.support.test:rules:0.4.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'

Otra solución es usar esto en el archivo de nivel superior:

configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'
}

8
Esta línea fue la solución: androidTestCompile 'com.android.support:support-annotations:23.1.0'
barq

4
El uso de la configuración configurations.all funcionó para mí, pero no en el archivo de nivel de proyecto, que es lo que interpreté inicialmente como "archivo de nivel superior" de la respuesta anterior. Estaba en el archivo build.gradle de nivel de módulo
OYRM

¿Es este conflicto causado originalmente por Espresso?
IgorGanapolsky

resolutionStrategy.force 'com.android.support:support-annotations:23.4.0' no me ayuda ... el problema es EspressoContribution para DatePicker, DrawerActions, RecyclerView, etc. ('com.android.support.test.espresso : espresso-contrib: 2.2.2 ') {excluir módulo:' support-annotations 'excluir módulo:' support-v4 '}
Ewoks

3
Solo un punto importante, para dejar claro que necesitamos agregar configuraciones.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'} dentro build.gradledel módulo (aplicación) para solucionar el problema.
AADProgramming

69

Project Rebuild resolvió mi problema.

En el estudio de Android en la barra de herramientas .. Construir> Reconstruir proyecto.


25

Fuente: CodePath - Pruebas de UI con Espresso

  1. Finalmente, necesitamos extraer las dependencias de Espresso y configurar el ejecutor de prueba en nuestra aplicación build.gradle:
// build.gradle
...
android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    ...
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {
        // Necessary if your app targets Marshmallow (since Espresso
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
    androidTestCompile('com.android.support.test:runner:0.5') {
        // Necessary if your app targets Marshmallow (since the test runner
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
}

Lo agregué a mi archivo gradle y la advertencia desapareció.

Además, si obtiene alguna otra dependencia que aparece como conflictiva, como anotaciones de soporte, intente excluirla también de las dependencias androidTestCompile.


1
excluir el androidtestcompile individual funciona para mí
Nantha kumar

12

puedes intentar usar

  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

en vez de

androidTestCompile 'com.android.support.test:runner:0.4.1'

androidTestCompile 'com.android.support.test:rules:0.4.1'

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.1'

6

Estaba recibiendo este error

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) son diferentes. Consulte https://d.android.com/r/tools/test-apk-dependency-conflicts.html para obtener más detalles.

Estaba teniendo siguientes dependencias en mi build.gradle archivo bajo Scripts Gradle

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
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'
}

Entonces, lo resolví comentando las siguientes dependencias

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'

Entonces mis dependencias se ven así

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
//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'
}

¡Espero eso ayude!


1
¿Así que eliminó las bibliotecas de prueba? Esto no es muy útil si necesita esas bibliotecas.
Pantalones

4

Recibí el mismo error hoy:

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) son diferentes.

Lo que hice:

  • Simplemente actualicé todas mis dependencias en 27.1.1lugar de26.1.0
  • Además, actualicé mi compileSdkVersion 27y targetSdkVersion 27cuáles fueron 26anteriores

¡Y el com.android.support:support-annotationserror desapareció!

Para Ref:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:design:27.1.1'
    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'
}

1

En mi caso, agregué el siguiente código en dependencias del nivel de aplicación build.gradle

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

Después de eso, limpio el proyecto y lo reconstruyo. Mi problema resuelto.


0

Cambie el archivo build.gradle de nivel de aplicación:

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

a

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

0

Prueba esto :

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.yourpackagename"
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.