Depois de atualizar para o android studio 2.3, recebi esta mensagem de erro. Eu sei que é apenas uma dica, pois o aplicativo é executado normalmente, mas é realmente estranho.
Todas as bibliotecas com.android.support devem usar exatamente a mesma especificação de versão (a mistura de versões pode causar falhas no tempo de execução). Versões encontradas 25.1.1, 24.0.0. Os exemplos incluem com.android.support:animated-vector-drawable:25.1.1 e com.android.support:mediarouter-v7:24.0.0
meu gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
android
build.gradle
humazed
fonte
fonte
Respostas:
Você pode resolver isso com uma das seguintes soluções:
Atualizar:
A partir do Android studio 3.0, fica muito mais fácil, pois agora mostra uma dica mais útil, por isso precisamos apenas segui-la.
por exemplo:
Solução:
adicione explicitamente a biblioteca com a versão antiga, mas com um novo número de versão.
no meu caso,
com.android.support:customtabs:26.1.0
então eu preciso adicionar:ou seja: pegue a biblioteca do segundo item e implemente-a com o número da versão do primeiro.
Nota: não esqueça de pressionar sync agora, para que o gradle possa reconstruir o gráfico de dependência e veja se há mais conflitos.
Explicação:
você pode ficar confuso com a mensagem de erro, pois não a usa,
customtabs
então como eu tenho um conflito !!bem ... você não o usou diretamente, mas uma de suas bibliotecas usa uma versão antiga do
customtabs
internamente, portanto, você deve solicitá-lo diretamente.se você estiver curioso para saber qual das suas bibliotecas é responsável pela versão antiga e talvez pedir ao autor para atualizar sua biblioteca, execute um relatório de dependência Gradle, consulte a resposta antiga para saber como.
Observe isso
Resposta antiga:
inspirado na resposta do CommonsWare :
Execute um relatório de dependência Gradle para ver qual é a sua árvore completa de dependências.
A partir daí, você verá qual das suas bibliotecas está solicitando uma versão diferente das bibliotecas do Suporte Android. Para o que quer que seja solicitado, você pode solicitá-lo diretamente com a versão 25.2.0 ou usar as outras abordagens de resolução de conflitos de Gradle para obter as mesmas versões.
Atualizar:
A partir da versão do plugin gradle: 3.0
compile
foi substituída porimplementation
ouapi
veja esta resposta para ver a diferença.portanto, use:
ou para janelas cmd:
e procure a versão em conflito.
Para mim, o erro desapareceu após a remoção
com.google.android.gms:play-services:10.2.0
E apenas inclua
com.google.android.gms:play-services-location:10.2.0
ecom.google.android.gms:play-services-maps:10.2.0
como eles são os únicos dois serviços de play que eu uso.Eu acho que
gms:play-services
dependem de alguns componentes antigos da biblioteca de suporte, então precisamos adicioná-los explicitamente.para o AS 3.0 mais antigo.
Corre:
Exemplo:
se alguém souber uma maneira melhor no novo plugin gradle, por favor me avise.
fonte
com.google.android.gms:play-services:10.2.0
suportes SDK 14 e acima, se você quiser usar abaixo SDK 14, você precisa usar a versão10.0.1
conforme mencionado na stackoverflow.com/a/42315590/6248491examples include
texto na mensagem de erro mostra exemplos reais de seu próprio projeto, não exemplos gerais vagos do tipo de problema. Pegue a biblioteca do segundo item e implemente-a com o número da versão do primeiro.project/.idea/libraries
pasta no seu sistema de arquivos e veja quais bibliotecas são diferentes.build.gradle
arquivo.Por exemplo:
fonte
Para todos os casos, não apenas para estas versões ou bibliotecas:
Preste atenção na pequena janela de informações que diz algo sobre o erro, que diz os exemplos que você precisa alterar e adicionar .
Nesse caso:
Seu
é a versão 25.1.1 e seu
é a versão 24.0.0 , então você deve adicionar o mediarouter com a mesma versão:
E faça isso para todos os exemplos que a pequena janela de informações diz, neste caso, todas as bibliotecas que não possuem a versão 25.1.1.
Você precisa sincronizar a gradle após corrigir a biblioteca indicada para ver a próxima biblioteca e pacote que precisa alterar.
IMPORTANTE:
Se você não estiver usando explicitamente uma ou mais bibliotecas especificadas e estiver fornecendo o erro, significa que está sendo usado internamente por outra biblioteca, compile-o explicitamente de qualquer maneira.
Você também pode usar outro método para ver a diferença das versões de todas as bibliotecas que está realmente compilando (como executar um relatório de dependência gradle ou acessar seus arquivos de bibliotecas), o objetivo real é compilar todas as bibliotecas que você está usando a mesma versão .
fonte
support:mediarouter
exatamente faz?A melhor maneira de resolver o problema é implementar todos os 'com.android.support: ...' sugeridos pelo Android Studio
(Não importa quais versões de suporte você está usando - 27.1.1, 28.0.0 etc.)
Coloque o cursor na linha de erro, por exemplo
O Android Studio sugere que 'com.android.support: ...' é uma versão diferente de 'com.android.support:appcompat-v7:28.0.0'
Exemplo
Então adicione
com.android.support:animated-vector-drawable:28.0.0
&com.android.support:exifinterface:28.0.0
. Agora sincronize o arquivo gradle.Um por um, tente implementar todas as sugestões 'com.android.support: ...' até que não haja erro nesta linha
implementation 'com.android.support:appcompat-v7:28.0.0'
No meu caso, eu adicionei
Todas essas dependências podem ser diferentes para você.
fonte
Adicione isso ao final do seu build.gradle (Módulo: app):
Certifique-se de substituir '25 .3.1 'pela versão da biblioteca de suporte do Android que você deseja usar para todas as dependências, pois ela não deve ser inferior à sua versão sdk completa
do que re sincronizar gradle
fonte
Eu tive exatamente o mesmo problema depois de atualizar para o Android Studio 2.3
A adição desta linha às dependências resolveu meu problema:
fonte
renderscriptSupportModeEnabled false
isso como false. E acrescentou compilação'com.android.support:customtabs:25.2.0'
e erro foi embora.A) Executar
gradle dependencies
ou./gradlew dependencies
B) Olhe para sua árvore e descubra qual de suas dependências está especificando uma versão diferente da biblioteca de suporte para uma dependência que você não controla.
Não percebi que esse aviso também é exibido se a dependência não for completamente usada diretamente pelo seu próprio código. No meu caso, o Facebook especifica algumas bibliotecas de suporte que eu não estava usando, como você pode ver abaixo, a maioria dessas dependências foi substituída pela minha própria especificação da 25.2.0, denotada pelos símbolos -> XXX (*) . A exibição do cartão e as guias das guias personalizadas não foram substituídas por ninguém, então eu preciso solicitar 25.2.0 para essas pessoalmente, mesmo que não as use.
Se gradle já o avisou e lhe deu exemplos ...
... é ainda mais fácil se você colocar algum destaque grep para a versão inferior, pois
gradle dependencies
pode ser bem detalhado:fonte
Usar variáveis : Fazer algo como o seguinte facilitará a garantia de uso da mesma versão em todas as bibliotecas
Mais informações sobre como o Google sugere que você lide com esse controle de versão podem ser encontradas neste artigo: https://developer.android.com/studio/build/index.html#top-level
fonte
basta adicionar isso:
Updated
para novas versões do SDKfonte
Se o mesmo erro estiver ativado
appcompat
então adicionando
design
resolveu.Para mim, adicionando
estava incluindo
appcompat-v7:23.1.1
emsem
vlc
,appcompat
só é suficiente.fonte
Como você já viu todas as respostas e comentários acima, mas esta resposta é para esclarecer algo que um novo desenvolvedor pode não conseguir facilmente.
./gradlew -q dependencies app: dependencies --configuration compile
A linha acima salvará sua vida sem dúvida, mas como obter o ponto exato do resultado da linha acima.
Ao obter o gráfico ou a lista de todas as dependências do comando acima, você deve procurar o número da versão conflitante que está recebendo no seu código. veja a imagem abaixo.
na imagem acima, você pode ver que o 23.4.0 está criando o problema, mas isso não conseguimos encontrar em nosso arquivo gradle. Então agora este número de versão (23.4.0) nos salvará. Quando tivermos esse número, encontraremos esse número no resultado do comando acima e importaremos diretamente essa dependência diretamente em nosso arquivo gradle. Por favor, veja a imagem abaixo para obter uma visão clara.
você pode ver claramente que com.android.support:cardview-v7:23.4.0 e com.android.support:customtabs:23.4.0 estão usando a versão que está criando o problema. Agora basta copiar essas linhas da lista de dependências e usar explicitamente em nosso arquivo gradle, mas com o link da versão atualizada
implementação "com.android.support:cardview-v7:26.1.0" implementação "com.android.support:customtabs:26.1.0"
fonte
Outra maneira de resolver conflitos é forçar a versão correta para todas as dependências como esta:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
fonte
Use support-v13 em vez de support-v4
fonte
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:support-v13:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
adicione-os nas dependências no nível do aplicativo
fonte
Meu problema é semelhante ao seu. Aqui existe um erro!
compile 'com.android.support:appcompat-v7:25.3.0'
Todas as bibliotecas com.android.support devem usar exatamente a mesma especificação de versão (a mistura de versões pode causar falhas no tempo de execução). Versões encontradas 25.3.0, 24.0.0. Os exemplos incluem 'com.android.support:animated-vector-drawable:25.3.0' e 'com.android.support:mediarouter-v7:24.0.0'
Veja estes exemplos incluem 'com.android.support:animated-vector-drawable:25.3.0' e 'com.android.support:mediarouter-v7:24.0.0'
Ao adicionar esses códigos nas dependências, verifique se as versões são iguais.
fonte
Eu recebi o mesmo erro depois de adicionar
compile 'com.google.android.gms:play-services:10.2.4'
com a compilação'com.android.support:appcompat-v7:25.3.1'
.Adicionando
animated-vector-drawable
emediarouter libs
corrigindo o problema.fonte
Eu tive isso:
e recebeu este erro:
As soluções foram fáceis - as dependências primárias estavam todas corretas, portanto as folhas foram deixadas - quaisquer dependências de terceiros. Removido um por um até encontrar o culpado, e acaba sendo o facebook! está usando a versão 27.0.2 das bibliotecas de suporte do Android. Tentei adicionar a versão 27.1.1 do cardview, mas isso não funcionou, e a solução ainda era bastante simples.
fonte
Eu enfrentei esse problema depois de atualizar para o android studio 3.4 e a versão sdk para 28.0.0. A aplicação da dependência abaixo resolveu o problema para mim.
fonte
Eu usei esses dois para resolver o meu problema depois de atualizar para o android studio 2.3
fonte
Eu já tinha o mesmo problema e consegui a solução.
Acabei de adicionar as bibliotecas que tinham a outra versão, mas com a mesma versão da minha
support:appcompat
.Para o seu erro, por exemplo:
* A solução é compilar as versões dessas bibliotecas assim:
compile 'com.android.support:mediarouter-v7:25.1.1'
-se outra biblioteca tiver o mesmo problema e outra versão, compile-a com o seu
support:appcompat
versãoIsso resolveu meu problema e espero que resolva o seu.
Muitas felicidades :)
fonte
Depois de pesquisar e combinar respostas, versão 2018 desta pergunta e funcionou para mim:
1) Na guia de navegação, altere-a para a visualização do projeto
2) Navegue para [YourProjectName] /. Idea / libraries /
3) Exclua todos os arquivos começando com Gradle__com_android_support_ [libraryName]
Por exemplo: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) No seu arquivo gradle, defina uma variável e use-a para substituir o número da versão, como $ {variableName}
Variável de definição:
Usar variável:
exemplo gradle:
fonte
Muito simples com a nova versão do android studio 3.x.
Apenas copie a versão que é menor que a versão atual e adicione-a explicitamente com o mesmo número de versão da versão atual.
Exemplo
Apenas copie a versão
com.android.support:exifinterface:27.1.0
e altere-acom.android.support:exifinterface:27.1.1
para que fique igual à versão atual que você está usando e adicione-a às suas dependências de classificação da seguinte forma.Nota: Quando terminar, não esqueça de clicar em Sincronizar agora, na parte superior do editor.
fonte
na atualização de 2018 para este erro, adicione implementação da estrutura do projeto
no modo de projeto -> Bibliotecas externas , você pode encontrar o seu problema, no meu caso, estou usando a versão 28 e bibliotecas externas que encontrei
com.android.support:support-media-compat-26.0.0
e aqui estava o erro.após a implementação
support v13
e está funcionandofonte
Você definiu qualquer outra dependência para compilar com a versão em
24.0.0
vez de25.1.1
. Defina todas as versões de dependências da mesma forma que25.1.1
.fonte
Eu tive que adicionar as seguintes linhas no gradle para remover o erro
fonte
Executei as tarefas ./gradlew --todos e verifiquei as dependências com uma versão diferente da versão de destino (25.3.1). Você obterá algo como isto:
Nesse caso, eu estava direcionado para 25.3.1 e tinha algumas dependências direcionadas para versões diferentes quando executei este comando. O truque é identificar as dependências nesta lista que estão direcionadas para versões anteriores e substituí-la importando a versão mais recente da dependência em Gradle.
fonte
Eu tenho o mesmo problema, mas resolvi isso adicionando essas três linhas
agora Tudo funciona perfeitamente
fonte
Aqui está o meu fluxo para corrigir esse aviso
build.gradle
Para visualizar / verificar
dependencies
todas as bibliotecas do seu aplicativoAbra o terminal e execute
./gradlew app:dependencies
Para visualizar o
dependencies
de uma biblioteca específica em seu aplicativo, siga o tutorial aqui: - Como excluir dependências de uma dependência específica no GradleEspero que ajude
fonte
Abra a biblioteca externa do seu projeto, você verá que alguma biblioteca ainda está usando a versão anterior, embora não tenha mencionado essa biblioteca, então minha sugestão é apenas usar a versão específica da biblioteca para aqueles que resolverão o seu problema.
fonte
Acabei de atualizar meu Repositório de Suporte do Android para (revisão: 44.0.0); em seguida, ferramentas Android SDK e Emulador para a versão mais recente 25.3.1 do sdk manager> Ferramentas SDK E isso resolveu o meu problema.
fonte