Conflito com dependência 'com.android.support:support-annotations' no projeto ': app'. As versões resolvidas do aplicativo (26.1.0) e do aplicativo de teste (27.1.1) são diferentes.

106

Sou novo no desenvolvimento de aplicativos Android. Quando tentei criar um novo projeto, Projeto Android ... a seguinte mensagem apareceu ..

Erro: Falha na execução da tarefa ': app: preDebugAndroidTestBuild'.

Conflito com dependência 'com.android.support:support-annotations' no projeto ': app'. As versões resolvidas do aplicativo (26.1.0) e do aplicativo de teste (27.1.1) são diferentes. Consulte https://d.android.com/r/tools/test-apk-dependency-conflicts.html para obter detalhes. Informações: tarefas Gradle [: app: generateDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar]

Esta é a imagem do meu projeto clique aqui para ver a imagem do erro que recebi

Eu também tentei adicionar este código à minha dependência .. androidTestCompile 'com.android.support:support-annotations:23.3.0' isso não funcionou. Eu também tentei 27.1.1 e 26.1.0 .. que também não funcionou.

hashTag_bibu
fonte
Verifique esta pergunta: stackoverflow.com/q/43817004/9611523 . Espero que ajude.
1
Atualizar o Android Studio (assim como o emulador e outras coisas depois disso) resolveu esse problema para mim.
O problema é devido ao gradle de anotação que não vem por padrão na criação de um novo projeto do Android Studio. Isso pode ajudá-lo: readyandroid.wordpress.com/…
Pronto para Android de

Respostas:

182

Com base na sua captura de tela, encontrei duas soluções de trabalho:

Primeira solução : adicione às dependências do seu módulo gradle esta linha

compile 'com.android.support:support-annotations:27.1.1'

e sincronize seu projeto

Nota: se você estiver usando o Android Studio 3+, mude compileparaimplementation

Segunda solução : configurar as propriedades de todo o projeto encontradas na documentação https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties

no projeto gradle adicione esta linha:

// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
    // The following are only a few examples of the types of properties you can define.
    compileSdkVersion = 26
    // You can also use this to specify versions for dependencies. Having consistent
    // versions between modules can avoid behavior conflicts.
    supportLibVersion = "27.1.1"
}

Então, para acessar esta compileSdkVersionlinha de mudança de seção para ser

compileSdkVersion rootProject.ext.compileSdkVersion

e na dependenciesseção altere a biblioteca importada para ficar assim:

compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

e sincronize seu projeto

Nota: se você estiver usando o Android Studio 3+, mude compileparaimplementation

Para saber a diferença entre compilee implementationolhar para isto Qual é a diferença entre implementação e compilação no gradle

emadabel
fonte
4
Eu sugeriria usar 'implementação' em vez de compilar
sancionado em
60

Adicione a linha abaixo em seu arquivo app.gradle antes do bloco de dependências.

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

Também há uma captura de tela abaixo para um melhor entendimento.

Configurations.all block

  1. o bloco configurations.all só será útil se você quiser que seu sdk de destino seja 26. Se você puder alterá-lo para 27, o erro desaparecerá sem adicionar o bloco de configuração no arquivo app.gradle.

  2. Há mais uma maneira, se você remover toda a implementação de teste do arquivo app.gradle, isso resolverá o erro e, nesta também, você não precisa adicionar o bloco de configuração nem alterar a versão do targetsdk.

Espero que ajude.

Harsh Jain
fonte
Obrigado, economize meu tempo
Manikandan K
1
@ManikandanK feliz em ajudar!
Harsh Jain
Louvado seja você por dar instruções completas! (Tantas respostas sobre este tipo de assunto são como "Adicionar isto:" force 'com.android.support:support-annotations:26.1.0' "com pouco / nenhum contexto! (Infelizmente, no entanto, ainda estou conseguindo o mesmo erro de compilação, no meu caso "Não foi possível encontrar com.android.support:support-annotations:27.0.0. Requerido por: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz
35

Se você usar a versão 26 , a versão das dependências internas deve ser 1.0.1 e 3.0.1 , ou seja, conforme a seguir

  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

Se você usar a versão 27 , a versão das dependências internas deve ser 1.0.2 e 3.0.2 , ou seja, conforme a seguir

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Harish
fonte
2
Deus te abençoe, que as bibliotecas de suporte do Android apodreçam no inferno!
Muhammad Naderi de
Então o assistente do Android Studio cria um projeto do zero COM erros? ¬¬
Sebastian Breit
Que tal 28 ?
alizulfuqar de
27

Se você usa o Android Studio 3.1. + Ou superior

basta colocar isso em suas dependências do Gradle:

implementation 'com.android.support:support-annotations:27.1.1'

Geral assim:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    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'

    implementation 'com.android.support:support-annotations:27.1.1'
}
Uray Febri
fonte
Obrigado amigo. Com muito amor
amilab
23

Isso ocorre devido a um conflito de versões, para resolvê-lo, basta forçar uma atualização de sua versão de suporte-anotações, adicionando esta linha em seu módulo: app gradle

implementation ('com.android.support:support-annotations:27.1.1')

Espero que isso resolva seu problema;)

Editar

Quase esquecido, você pode declarar uma única propriedade extra ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) para a versão, vá para o arquivo gradle do seu projeto (ou superior) e declare seu suporte, ou apenas para este exemplo, versão de anotação var

ext.annotation_version = "27.1.1"

Em seguida, em seu módulo gradle, substitua-o por:

implementation ("com.android.support:support-annotations:$annotation_version")

Isso é muito semelhante à solução @emadabel, que é uma boa alternativa para fazê-lo, mas sem o bloco ou o rootprojectprefixo.

desgraci
fonte
1
Obrigado desgraci a solução acima me ajudou
BharathRao
depois de adicionar esta linha agora estou recebendo o erro "Erro: Falha na execução da tarefa ': app: processDebugManifest'.> A fusão do manifesto falhou com vários erros, consulte os logs" por favor me ajude como posso resolver isso
Basant
@Basant eu precisaria ver qual é o problema, já que é um problema ao executar seu gradle, seria melhor abrir uma pergunta para isso
desgraci
Desculpe pela resposta tardia @desgraci, resolvi esse problema atualizando o IDE
Basant
@Basant fico feliz em ouvir isso!
desgraci
9

Adicionar isso ao build.gradle (aplicativo do módulo) funcionou para mim:
compile 'com.android.support:support-annotations:27.1.1'

San Askaruly
fonte
7

Não se preocupe. É simples:

Vá para a estrutura do diretório "Project" e vá para "Gradle Scripts" e dentro dele vá para "build.gradle (Module: app)" e dê um duplo clique nele.

Agora - role para baixo no programa e vá para a seção de dependências: Como abaixo


dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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'

}


Agora neste Delete as duas últimas linhas de código e reconstrua o aplicativo e agora ele funcionará

As dependências devem ser:


dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'

}


RECONSTRUA O APLICATIVO E FUNCIONE !!

Manika Agrawal
fonte
Você não explicou o que excluiu / adicionou. E se as bibliotecas de testes forem necessárias aqui?
TheRealChx101
3

Acesse build.gradle (aplicativo de módulo) em seu projeto:

insira a descrição da imagem aqui

Siga a foto e mude essas versões:

compileSdkVersion: 27
targetSdkVersion: 27

e se o Android Studio versão 2: Altere a linha com esta linha:

compile 'com.android.support:appcompat-v7:27.1.1'

senão mude a linha com esta linha:

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

e esperançosamente, você resolverá seu bug.

Maizied Hasan Shuvo
fonte
2

Adicione isso ao seu arquivo Gradle.

implementation 'com.android.support:support-annotations:27.1.1'
Jeffy
fonte
1

Outra maneira simples de resolver esse problema é editar seu build.gradle(aplicativo):

  1. Vá para androidtag e mude compileSdkVersion 26paracompileSdkVersion 27
  2. Vá para defaultConfigtag e mude targetSdkVersion 26paratargetSdkVersion 27
  3. Tenho que dependenciesmarcar e mudar implementation 'com.android.support:appcompat-v7:26.1.0'paraimplementation 'com.android.support:appcompat-v7:27.1.1'
Realdinho
fonte
1

Estou com o mesmo problema, em build.gradle (Módulo: app) adicione a seguinte linha de código dentro das dependências:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Funcionou para mim perfeitamente

Mohammed H. Hannoush
fonte
1

Atualização Importante

Vá para build.gradle de nível de projeto, defina variáveis ​​globais

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlinVersion = '1.2.61'

    ext.global_minSdkVersion = 16
    ext.global_targetSdkVersion = 28
    ext.global_buildToolsVersion = '28.0.1'
    ext.global_supportLibVersion = '27.1.1'
}

Acesse build.gradle de nível de aplicativo e use variáveis ​​globais

app build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

alguma biblioteca build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

A solução é fazer suas versões iguais às de todos os módulos. Para que você não tenha conflitos.

Dicas importantes

Senti que quando atualizei versões de tudo - gradle, sdks, bibliotecas etc., então enfrento menos erros. Porque os desenvolvedores estão trabalhando muito para facilitar o desenvolvimento no Android Studio.

Sempre tem mais recente, mas versões estáveis versões instáveis são alpha, betae rc, ignorá-los no desenvolvimento.

Eu atualizei tudo abaixo em meus projetos, e não encontro mais esses erros.

Boa codificação! :)

Khemraj
fonte
0

Se alterar a versão do SDK de destino não ajudar, se você tiver alguma dependência com a versão 3.0.2, mude para 3.0.1.

por exemplo, mudança

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

para

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'
Harshad
fonte
0

A melhor solução é explicada na explicação oficial . Deixei a resposta que dei antes sob a linha horizontal.

De acordo com a solução lá:

Use uma tag externa e anote o código a seguir abaixo no arquivo build.gradle de nível superior . Você vai mudar a versão para uma variável em vez de um número de versão estática.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Altere os números da versão estática em seu arquivo build.gradle de nível de aplicativo , o que está (Module: app)próximo.

android {
    compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
    // the below lines will stay
}

// here there are some other stuff maybe

dependencies {
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    // the below lines will stay
}

Sincronize seu projeto e você não obterá erros.


Você não precisa adicionar nada aos scripts do Gradle. Instale os SDKs necessários e o problema será resolvido.

No seu caso, instale as bibliotecas abaixo em Preferências> Android SDK ou Ferramentas> Android> SDK Manager

insira a descrição da imagem aqui

Onur Tuna
fonte
0

Adicione esta linha nas dependências em seu arquivo Gradle

compile 'com.android.support:support-annotations:27.1.1'
Pavitha
fonte