Jar Mismatch Encontradas 2 versões do android-support-v4.jar na lista de dependências

130

Estou tentando criar duas versões de um aplicativo Android (gratuito / pago). Eu tenho uma biblioteca do Android que contém arquivos comuns a ambos. Criei um novo projeto Android e estou tentando usar a Biblioteca, mas obtém o erro abaixo:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

Alguma idéia sobre como resolver isso? Eu tenho jogado com o caminho da construção sem sucesso.

Zaheer
fonte
Eu encontrei um muito solução simples que funciona em tais situações, veja a minha resposta abaixo
gprathour

Respostas:

177

Alguma idéia sobre como resolver isso?

Apague um.

Eu tenho jogado com o caminho da construção sem sucesso.

Etapa 1: desfazer tudo isso. Se você estiver mexendo no caminho da construção, na versão R16 ou superior do plug-in ADT para Eclipse, estará fazendo errado.

Etapa 2: Escolha uma dessas duas versões do JAR ou escolha a área "extras" da instalação do SDK.

Etapa 3: Coloque o JAR certo App Library.

Etapa 4: Exclua o de App Free, pois ele pegará esse JAR App Library.

Você pode, em vez disso, ter o mesmo arquivo JAR real nos dois pontos ( App Freee App Library), embora isso apenas ocupe espaço extra sem motivo.

CommonsWare
fonte
1
@Necronet: Todos usam o mesmo JAR. Por exemplo, copie o mais recente em cada um desses projetos.
CommonsWare
@ CommmonsWare: como saber qual é o mais recente?
Mehul Joisar
2
@MehulJoisar: Isso é com os autores do JAR. No caso do android-support-v4.jar, o mais recente é o da instalação do SDK.
CommonsWare
5
@MehulJoisar: Eu não posso responder isso. Normalmente, pego as últimas android-support-v4.jardo SDK e as copio em todos os projetos da biblioteca (além de excluir o do SDK).
CommonsWare
1
Acabei de ter esse problema, mas parecia surgir completamente do nada, como vários outros problemas (mais difíceis) do Eclipse / Android. Esta resposta corrige o efeito, mas aparentemente não a causa.
quer
24
  1. Excluir android-support-v4.jar do aplicativo grátis
  2. Adicione o mesmo arquivo da App Library ao App Free
Lee Chun Hoe
fonte
@ Lee Chun Hoe, você pode me dizer como seguir esse caminho no MAC OS. Quero excluir android-support-v4.jar.
Rakesh
@Rakesh No Eclipse Package Explorer, expanda seu projeto, na pasta libs, exclua esse arquivo android-support-v4.jar.
Lee Chun Hoe
12

As soluções acima resolvem principalmente o problema. depois de usar essas soluções e o problema persistir. Então

Vá para a pasta do projeto -> libs-> e exclua "android-support-v4.jar"

Esperando que isso resolvesse o seu problema, pois resolveu o meu problema.

Nauman Khalid
fonte
11

Existem alguns cenários onde você tem vários projetos de biblioteca com o do android-support-v4.jarem seus libse construir caminhos e seu projeto tem uma dependência em relação a ambos. Por exemplo, no meu caso, tenho os seguintes projetos de bibliotecas no meu espaço de trabalho,

  • libfacebook
  • libsherlockactionbar

Ambos os projetos são independentes e minha project.propertiesaparência é a seguinte,

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

Quando construo meu projeto, recebo um problema de incompatibilidade de jar com referências duplicadas a duas cópias do mesmo arquivo. O que fiz para resolver esse problema é um pouco complicado. Criei um novo projeto de biblioteca nomeado libcommonscomo pai para todos os outros projetos de biblioteca no meu espaço de trabalho, incluindo libfacebooke libsherlockactionbar. Em seguida, removi a biblioteca de suporte de todos os outros projetos e mantive apenas uma cópia dentro libcommonsda pasta libs . Em seguida, adicionei libcommonscomo referência a todos os meus outros projetos de biblioteca. Depois de limpar meu espaço de trabalho, tudo funciona como um encanto.

Subin Sebastian
fonte
8

Esta é uma correção mais elegante do que excluir e adicionar arquivos!

Você só precisa:

  1. Clique com o botão direito do mouse no projeto App Free
  2. Vá para "Ferramentas Android"> "Adicionar Biblioteca de Suporte"
  3. Aprovar as permissões e deixá-lo atualizar a biblioteca
  4. Repita esse processo para o projeto App Library

A Biblioteca de suporte do Android estará sincronizada (:

cokeby190
fonte
Obrigado - isso resolveu o meu problema. Eu tive que adicionar BaseGameUtils e recebi este erro :) #
2800 neowhoru
@neowhoru, não há problema! Fico feliz em compartilhar ~!
cokeby190
1
feliz que ajudou @MuhammedRefaat! (:
cokeby190
7

SOLUÇÃO MUITO SIMPLES

Uma solução muito simples funcionou para o meu caso, basta copiar o mesmo arquivo jar (android-support-v4.jar) para todos os projetos. Não haverá mais conflitos.

1 Copie o arquivo jar android-support-v4.jar da pasta libs de qualquer projeto.

2 Exclua o arquivo jar android-support-v4.jar da pasta libs do segundo projeto, que já existe.

3 Cole o arquivo jar recém-copiado do primeiro projeto na pasta libs do segundo projeto.

O problema de incompatibilidade de jar será resolvido até agora.

gprathour
fonte
5

Basta copiar a biblioteca de um dos projetos para o outro. Talvez o registro de data e hora precise ser o mesmo em ambos.

Rafael Sanches
fonte
4

Resolução:

  1. Clique com o botão direito do mouse em projeto 'grátis'> Ferramentas Android> Adicionar Biblioteca de Suporte.
  2. Faça a mesma coisa no projeto 'pago'.
  3. Limpar todos os projetos
strawberrywine
fonte
2

Verifique se há projetos irrelevantes abertos para você, porque esse foi o meu caso, parecia que um dos arquivos JAR estava relacionado a um projeto diferente, com o qual eu não estava trabalhando, então fechei o projeto e fiz uma limpeza construção do projeto em que estou trabalhando e não tinha mais o problema! Espero que isso ajude alguém!

Arturas M
fonte
1

Use o mesmo jar ao adicionar jars externos na biblioteca e no projeto

Pratik Kanade
fonte
1

Bem, funciona para mim:

Vamos para

Pasta do projeto> libs

em seguida, exclua "android-support-v4.jar"

Então

projeto> Limpo

Vai funcionar!

Erick Guerrero
fonte
1

Acabei de ter esse problema, mas, em vez de excluir o android-support-v4.jar conflitante , acabei de renomeá-lo para android-support-v4_PROJECT.jar , que removeu o conflito.

Se você está se perguntando como renomear um arquivo no Eclipse, basta destacar o arquivo e pressionar F2.

eBehbahani
fonte
0

Você só precisa ter exatamente a mesma soma de verificação android-support-v4.jar em cada um dos seus projetos. Para isso, você pode copiar / colar um deles em todos os seus projetos / bibliotecas conflitantes.

Nada mais a fazer, limpar e aproveitar :)

tryp
fonte
0

Pode ser que você abra 2 projetos ao mesmo tempo (ambos usando android-support-v4.jar). I close 1 project and every thing ok

Lobo cinzento
fonte