No meu aplicativo Android no Eclipse, recebo o seguinte erro.
EXCEÇÃO DE NÍVEL SUPERIOR INESPERADA:
java.lang.IllegalArgumentException: já adicionado: Lorg / xmlpull / v1 / XmlPullParser;
....
Falha na conversão para o formato Dalvik com erro 1
Este erro aparece apenas quando adiciono um arquivo JAR externo específico ao meu projeto. Procurei por um longo tempo a solução possível, mas nenhuma das soluções possíveis funciona.
Eu até tentei mudar para o Android 1.6 em vez de 1.5 (a versão atual que eu uso).
android
dalvik
android-sdk-1.6
Michel
fonte
fonte
Respostas:
Vá para Projeto »Propriedades» Caminho de compilação Java »Bibliotecas e remova tudo, exceto o" Android XY "(no meu caso, Android 1.5). Clique OK. Vá para Projeto »Limpar» Limpar projetos selecionados abaixo »selecione seu projeto e clique em OK. Isso deve funcionar.
Também é possível que você tenha um arquivo JAR localizado em algum lugar nas pastas do seu projeto (eu copiei o arquivo Admob JAR na minha pasta src) e ENTÃO o adicionei como uma Java Path Library. Ele não aparece no Package Explorer, então você não percebe, mas é contado duas vezes, causando o temido erro Dalvik 1.
Outro motivo possível pode ser conflitos de nome de pacote. Suponha que você tenha um pacote
com.abc.xyz
e uma classe nomeadosA.java
dentro deste pacote e outro projeto de biblioteca (que é adicionado à dependência deste projeto) que contém o mesmocom.abc.xyz.A.java
, e você receberá o mesmo erro exato. Isso significa que você tem várias referências ao mesmo arquivoA.java
e não pode construí-lo adequadamente.De outras maneiras, isso pode ocorrer se você editar / adicionar acidental ou intencionalmente qualquer coisa no arquivo do caminho da classe. Em certos casos, podemos adicionar o caminho android.jar manualmente ao arquivo do caminho da classe para gerar o java doc. O código funcionará bem. Verifique isso também se ainda ocorrer algum.
fonte
Eu resolvi o problema.
Este é um conflito de arquivo JAR.
Parece que tenho dois arquivos JAR no meu caminho de construção que incluem o mesmo pacote e classes.
smack.jar
eandroid_maps_lib-1.0.2
A exclusão deste pacote de um dos arquivos JAR resolveu o problema.
fonte
ScoreloopUI
projeto ao meu jogo AndEngine, esses jars também interferem nos seus, mesmo que não estejam no caminho de criação do seu próprio projeto.Solução Windows 7:
Confirmado que o problema foi causado pela linha de comando do ProGuard no arquivo
[Diretório de instalação do SDK do Android] \ tools \ proguard \ bin \ proguard.bat
Edite a seguinte linha resolverá o problema:
para
fonte
Você pode resolver esse problema facilmente (com as Ferramentas de desenvolvedor do Eclipse Android, Build: v22.0.1-685705) desativando o menu> "Projeto"> "Construir automaticamente" ao exportar (não) aplicativo Android assinado. Depois disso, não se esqueça de ligá-lo novamente.
fonte
Se você tiver a revisão 12+ do ADT, atualize seu programa de 4.4 -> 4.6 (conforme descrito aqui ). Além disso, você deve deixar o arquivo ... \ bin \ proguard.bat no formato original.
Faça o download da Web e copie a pasta lib do pacote baixado para o:
[Diretório de instalação do Android SDK] \ tools \ proguard \ lib
fonte
<sdk>/tools/proguard
diretório antigo e movi oproguard4.11
diretório descompactado completo para o caminho antigo. Voila! Agora, se eu pudesse recuperar minha hora anterior ... -_-EDIT (nova solução):
Parece que a solução anterior é apenas um desvio. Consegui finalmente resolver o problema permanentemente: no meu caso, houve uma incompatibilidade nos arquivos android-support-v4 no meu projeto e no projeto do Facebook que é mencionado no meu projeto.
Encontrei este erro executando o Lint Check (Ferramentas Android / Run Lint: verifique se há erros comuns)
Minha solução anterior:
Eu tentei qualquer solução possível neste site - nada ajudou !!!
Finalmente, encontrei uma resposta aqui: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Passos fáceis:
fonte
Aqui está outro cenário e solução:
Se você se deparar com esse problema recentemente após atualizar o ADT for Eclipse:
Parece que o motivo é que algumas versões anteriores das pastas de origem do projeto Library vinculadas ao ADT aos projetos "filhos" e a combinação atual do ADT / Dex não são mais compatíveis com essa solução.
EDIT: isso é confirmado por uma entrada do Android Dev Blog, especificamente esta - veja o 8º parágrafo em diante.
fonte
Vá para Projeto e desmarque a opção "Criar automaticamente". Em seguida, tente exportar o projeto e o erro desapareceu.
fonte
Isso também pode ser causado se você adicionou um
Android.jar
arquivo ao seu caminho de construção, talvez por uma correção rápida acidental no Eclipse. Remova-o com o botão direito do mouse em Projeto -> caminho da construção -> configure o caminho da construção -> android.jar , remova.fonte
Simplesmente limpar o projeto funcionou para mim toda vez que esse erro surgia.
fonte
Minha própria e única solução que encontrei hoje após quatro horas de teste de todas as soluções é uma combinação de muitas soluções fornecidas aqui:
Delete
projeto do Eclipse\bin
e\gen
da pasta do projeto.classpath
arquivo na pasta raiz do projetoeclipse -clean
Import
projetoProperties
>Java Build Path
>Libraries
e remover tudo o mais do queAndroid XX.Y
clean
projeto, espere para construção automática ouBuild
queEu tentei cada passo de cada vez e muitas combinações, mas apenas a sucessão de todos os passos conseguiu! Espero não enfrentar isso de novo ...
fonte
bin
pasta fez isso por mim.Apenas para as outras pessoas que ainda têm esse problema e tentaram as respostas acima, mas ainda estão recebendo o erro (que era o meu caso), então minha solução foi excluir o projeto do Eclipse e reimportá-lo novamente.
Isso fez com que a biblioteca do Android fosse adicionada novamente às minhas bibliotecas referenciadas; agora, eu tenho dois arquivos JAR do Android referenciados; portanto, excluí um deles e agora ele compila corretamente.
Solução: exclua o projeto do Eclipse IDE e importe-o novamente e verifique as soluções acima.
fonte
Hoje me deparei com esse problema. A limpeza e a reconstrução não resolveram o problema. Excluir e reimportar o projeto também não ajudou.
Finalmente, dediquei-o a uma adição ruim ao meu arquivo .class. Acho que isso foi adicionado pelas ferramentas de plug-in quando eu estava tentando corrigir outro problema, removendo-o do erro de compilação "Conversão para o formato Dalvik falhou com o erro 1":
fonte
Para mim, uma referência JAR extra apareceu no meu caminho de construção. Eu apaguei isso, e ele funciona agora.
fonte
Meu problema foi causado pela integração do ADT versão 12.0 e ProGuard. Esse bug está bem documentado e a solução está na documentação
A solução está aqui
Linha de comando do ProGuard
fonte
Eu lidei com esse problema ao usar a biblioteca Sherlock ActionBar no meu projeto. Você pode fazer o seguinte passo, é trabalho para mim.
Espero que ajude você.
fonte
No meu caso, o problema está realmente com o projeto da API OpenFeint. Adicionei o OpenFeint como projeto de biblioteca:
.
Também é adicionado ao caminho de construção, as ferramentas 16 do ADT dão erro neste cenário.
Clique com o botão direito do mouse em seu projeto e clique em caminho de construção, configure o caminho de construção e veja a imagem e remova seu projeto OpenFeint daqui e tudo está feito :)
fonte
Encontrei outra coisa. O Android usa o
/libs
diretório para arquivos JAR. Vi o erro "Conversão para o formato Dalvik falhou com o erro 1" várias vezes, sempre quando cometia um erro nos meus arquivos JAR.Agora, atualizei o Roboguice para uma versão mais nova, colocando o novo arquivo JAR no
/libs
diretório e alternando o caminho da classe para a nova versão. Isso causou o erro de Dalvik.Quando removi um dos arquivos JAR do Roboguice da
/libs
pasta, o erro desapareceu. Aparentemente, o Android coleta todos os arquivos JAR/libs
, independentemente de quais você especificar no caminho de construção do Java. Não me lembro exatamente, mas acho que o Android começou a usar/libs
por padrão a partir do Android 4.0 (Ice Cream Sandwich, ICS).fonte
A atualização do Proguard para a versão mais recente resolveu isso para mim.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
GRAÇAS A DEUS!
fonte
Em geral, parece que esse problema ocorre quando há arquivos JAR desnecessários no caminho da construção.
Eu enfrentei esse problema enquanto trabalhava no IntelliJ IDEA . Para mim, aconteceu porque adicionei as bibliotecas JUnit e Mockito que estavam sendo compiladas em tempo de execução. Isso precisava ser definido como "testing" nas propriedades do módulo.
fonte
Nenhuma das soluções propostas anteriormente funcionou para mim. No meu caso, o problema ocorreu quando passei de uma pasta de código-fonte da biblioteca para o arquivo JAR da biblioteca. Inicialmente, havia um projeto de biblioteca do Android listado na seção Properties \ Android page \ Library do projeto de aplicativo para Android, e a biblioteca foi comparada também na árvore do explorador de projetos como um link para o diretório de origem da biblioteca.
Em primeiro lugar, acabei de excluir o link do diretório da árvore do projeto e adicionei a biblioteca JAR ao caminho da construção, mas isso causou a exceção.
O procedimento correto foi (após alterar novamente o caminho da compilação e colocar de volta a referência à fonte da biblioteca):
remova corretamente o link do diretório de origem da biblioteca, removendo a referência da página Propriedades do projeto do aplicativo \ Android
adicionando o JAR da biblioteca ao caminho de construção do projeto do aplicativo, como de costume.
fonte
Nenhuma das soluções listadas funcionou para mim.
Aqui é onde eu estava tendo um problema:
Adicionei o arquivo JAR externo do jSoup ao caminho do meu projeto, primeiro colocando-o em uma pasta de origem chamada "libs" e, em seguida, clicando com o botão direito do mouse em Build Path -> add to build path. Isso gerou o erro de conversão Dalvik. Ele disse que "já incluíra" uma classe desse arquivo JAR. Olhei em volta do diretório do projeto e descobri que o local em que estava "já incluído" era de fato o
bin
diretório. Excluí o arquivo JAR dobin
diretório e atualizei o projeto no Eclipse e o erro desapareceu!fonte
Todas as soluções acima não funcionaram para mim. Não estou usando nenhum .jar pré-compilado. Estou usando os erros LVL e Dalvik, todos relacionados à biblioteca de licenciamento do mercado.
O problema foi resolvido excluindo o projeto principal e reimportando (crie um novo projeto a partir de fontes existentes).
fonte
Eu tive o mesmo problema e nenhuma dessas soluções funcionou. Por fim, vi no console que o erro ocorreu devido à classe duplicada (uma no projeto existente e outra no arquivo jar adicionado):
Portanto, verifique se você está adicionando jar com classes duplicadas em seu projeto. Se sim, tente remover um deles.
Funcionou para mim.
fonte
Geralmente, para mim, a limpeza do projeto NÃO corrige esse problema.
Mas fechar o projeto no Eclipse e reabri-lo parece corrigi-lo nesses casos ...
fonte
Encontrei esse problema, mas minha solução era dupla. 1.) Eu tive que adicionar uma versão de destino do Android em projeto -> propriedades -> Android . 2.) Eu não tinha todos os 'add-ons' de terceiros. Clique no Gerenciador de AVD SDK sob pacotes disponíveis -> de terceiros add-ons -> Google Inc . Fiz o download de todos os SDKs e isso resolveu meu problema.
fonte
Estou usando o Android 1.6 e tinha um arquivo JAR externo. O que funcionou para mim foi remover todas as bibliotecas, clicar com o botão direito do mouse no projeto e selecionar Ferramentas Android -> * Corrigir propriedades do projeto (que adicionou o Android 1.6) e depois adicionar o arquivo JAR externo.
fonte
Corri para esse problema porque o plug-in Android-Maven no Eclipse aparentemente não reconhecia referências transitivas e referências referenciadas duas vezes em alguns projetos (incluindo um projeto de biblioteca do Android) e incluí-las mais de uma vez. Eu tive que usar o hocus-pocus para incluir tudo apenas uma vez, mesmo que Maven deva cuidar de tudo isso.
Por exemplo, eu tinha uma biblioteca principal globalmentor-core, que também era usada pelo globalmentor-google e globalmentor-android (o último dos quais é uma biblioteca Android). No globalmentor-android
pom.xml
, tive que marcar a dependência como "fornecida", além de ser excluída de outras bibliotecas nas quais foi incluída transitivamente:Então, no aplicativo final,
pom.xml
eu tive que usar as artimanhas certas para permitir apenas um caminho de inclusão - além de não incluir explicitamente a biblioteca principal:fonte
<extractDuplicates>true</extractDuplicates>
no android-maven-plugin corrigiu o problema paramvn install
mas não paramvn deploy
onde eu tenho o erro descrito ... realmente estranhoNo meu caso
projeto-> propriedades-> caminho da compilação java -> na guia ordem e exportação -> desmarque android-support-v4.jar
fonte
Apenas limpe o projeto
Se isso não funcionar, tente as outras soluções
fonte