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.