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?

barq
fuente
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
¿O esto podría ayudarlo a leer yandroid.wordpress.com/…
Listo para Android

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'
}
Gabriele Mariotti
fuente
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.

Sushanth Kille
fuente
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.

rexxar
fuente
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'
jingsong yang
fuente
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!

Shahbaz Ali
fuente
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'
}
Rohit Sharma
fuente
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.

Mohammed Nishar
fuente
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'
chetu
fuente
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'
}
Hanisha
fuente