Conflito com a dependência 'com.android.support:support-annotations'. As versões resolvidas para o aplicativo (23.1.0) e o aplicativo de teste (23.0.1) diferem


119

Ao construir, recebo o seguinte erro:

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

Estas são minhas dependências 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'
}

Como posso consertar isso?


Posso dizer que a dependência 23.1.0 vem da lib appcompat, porque isso inclui a lib de anotações. A 23.0.1 Não sei
Tim

Ele não quer trabalhar se eu mudar appcompat volta para 23.0.1
Barq

Acabei de substituir 23.1.0 por 23.0.1, em todos os lugares dependentes, funcionou para mim.
Shahzad Afridi

Adicione dependência de anotação relacionada ao seu erro de versão. readyandroid.wordpress.com/…
Android pronto

Respostas:


208

Você pode forçar a biblioteca de anotações em seu teste usando:

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

Algo assim:

  // 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'

Outra solução é usar isso no arquivo de nível superior:

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

8
Esta linha foi a solução: androidTestCompile 'com.android.support:support-annotations:23.1.0'
barq

4
O uso da configuração configurations.all funcionou para mim, mas não no arquivo no nível do projeto, que é o que eu interpretei inicialmente como "arquivo de nível superior" da resposta acima. Estava no arquivo build.gradle no nível do módulo
OYRM 18/12/2015

Esse conflito foi causado originalmente pelo Espresso?
IgorGanapolsky

resolutionStrategy.force 'com.android.support:support-annotations:23.4.0' não ajuda para mim .. o problema é EspressoContribution para DatePicker, DrawerActions, RecyclerView, etc. ('com.android.support.test.espresso : espresso-contrib: 2.2.2 ') {exclude module:' support-anototations 'exclude module:' support-v4 '}
Ewoks

3
Apenas um ponto importante, para deixar claro que precisamos adicionar o arquivo configations.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'} dentro build.gradledo módulo (aplicativo) para corrigir o problema.
AADProgramming

69

A reconstrução do projeto resolveu meu problema.

No estúdio do Android, na barra de ferramentas. Compilar> Reconstruir projeto.


25

Fonte: CodePath - Teste de UI com Espresso

  1. Finalmente, precisamos extrair as dependências do Espresso e definir o executor de teste em nosso aplicativo 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'
    }
}

Adicionei isso ao meu arquivo de notas e o aviso desapareceu.

Além disso, se houver outra dependência listada como conflitante, como anotações de suporte, tente excluí-la também das dependências androidTestCompile.


1
excluindo o androidtestcompile indivíduo trabalha para mim
Nantha Kumar

12

você pode tentar usar

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

ao invés 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

Eu estava recebendo esse erro

Erro: falha na execução da tarefa ': app: preDebugAndroidTestBuild'. Conflito com a dependência 'com.android.support:support-annotations' no projeto ': app'. As versões resolvidas para o aplicativo (26.1.0) e de teste (27.1.1) são diferentes. Consulte https://d.android.com/r/tools/test-apk-dependency-conflicts.html para obter detalhes.

Eu estava tendo as seguintes dependências no meu arquivo build.gradle em 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'
}

Então, resolvi comentando as seguintes dependências

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'

Então minhas dependências ficam assim

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 que ajude!


1
Então você removeu as bibliotecas de teste? Isso não é muito útil se você precisar dessas bibliotecas.
Pants

4

Eu estava recebendo o mesmo erro hoje:

Erro: falha na execução da tarefa ': app: preDebugAndroidTestBuild'.> Conflito com a dependência 'com.android.support:support-annotations' no projeto ': app'. As versões resolvidas para o aplicativo (26.1.0) e de teste (27.1.1) são diferentes.

O que eu fiz:

  • Eu simplesmente atualizei todas as minhas dependências para, em 27.1.1vez de26.1.0
  • Além disso, atualizei o meu compileSdkVersion 27e targetSdkVersion 27quais eram 26anteriores

E o com.android.support:support-annotationserro se foi!

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

No meu caso, adicionei o código abaixo nas dependências do build.gradle no nível do aplicativo

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

Depois disso, eu limpo o projeto e reconstruo. Meu problema foi resolvido.


0

Altere os arquivos build.gradle no nível do aplicativo:

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

para

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

0

Tente o seguinte:

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'
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.