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?

barq
fonte
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
Ou isso pode ajudá-lo 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'
}
Gabriele Mariotti
fonte
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.

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

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

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

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