studio - 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
configurar gradle android studio (9)
Cambie el nivel de su aplicación en el archivo build.gradle:
implementation ''com.android.support:appcompat-v7:23.1.0''
a
implementation ''com.android.support:appcompat-v7:23.0.1''
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?
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 está resuelto.
Estaba recibiendo este error
Error: Error de ejecución 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 detalles.
Tenía las siguientes dependencias en mi archivo build.gradle en Gradle Scripts
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!
Fuente: CodePath - Prueba de IU con Espresso
- Finalmente, necesitamos incorporar las dependencias de Espresso y configurar el corredor 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 enumerada como conflictiva, como anotaciones de soporte, intente excluirla también de las dependencias androidTestCompile.
La reconstrucción del proyecto resolvió mi problema.
En el estudio de Android en la barra de herramientas. Generar> Reconstruir proyecto.
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''
}
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''
}
puedes intentar usar
androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', {
exclude group: ''com.android.support'', module: ''support-annotations''
})
en lugar 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''
Recibí el mismo error hoy:
Error: Error en la ejecución de 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.
Lo que hice:
-
Simplemente actualicé todas mis dependencias a
27.1.1
lugar de26.1.0
-
Además, actualicé mi
compileSdkVersion 27
ytargetSdkVersion 27
que eran26
anteriores
¡Y el error
com.android.support:support-annotations
desapareció!
Para la referencia:
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''
}