Conversion to Dalvik format failed with error 1

34 respostas
A

Toda vez que vou executar meu projeto tá aparecendo este erro, acontece também com projetos que não estavam com este problema.

Criei um projeto novo, estava executando normalmente, depois começou a aparecer este erro também.

Alguém sabe como resolver? Vi alguns foruns dizendo que era problema de PATH, mas nem mexi nisso e estava funcionando antes.

34 Respostas

A

Fiz o seguinte:

Exclui todos os .jar e inclui novamente.

danilorangelmg

Eh realmente quando acontece esse problema é algum jar que a dalvik nao conhece, normalmente basta so excluir e inserir novamente que volta a funcionar.

vcsmetallica

Galera

Estou tentando colocar os seguintes jar’s na minha aplicação:

commons-codec-1.6
commons-logging-1.1.1
httpclient-4.2.2
httpclient-cache-4.2.2
httpcore-4.2.2
xmlpull-1.1.3.1
xpp3_min-1.1.4c
xstream-1.4.3

Fiz os que voces sugeriram e nada.

Att

Marky.Vasconcelos

Eu tive esse problema usando um jar obfuscado, nunca resolvi, aproveitei que tinha uma copia do eclipse, um ADT e o Android SDK antigos para compilar.

vcsmetallica

Eu resolvi tirando os jar da apache.
Acho que o SDK tem esses camaradas embutidos. Por não deu erro. Até agora!!!

Att

L

Bom estou com esse mesmo problema hehehe. Isso acontece por que o SDK já tem muita coisa do Java embutido, menos, no meu caso, o javax.xml.bind e o javax.xml.stream. Por isso tenho problemas com o JAXB e XStream que depende dele. Duro mas, basicamente, pelo que eu andei pesquisando , a única solução possível é reempacotar o JAXB-API com um uma estrutura de pacotes que não seja iniciada com javax. Vou ver o que eu consigo e se resolver posto aqui a dica.

ideiainformatica

Podem especificar onde fazer isto no Eclipse?

Valkyrium

Galera, sempre tenho este erro quando vou gerar minha APK.

E para arrumar, basta que eu dê um clean no projeto, e pronto!

Então, para quem não sabe onde fazer isto no Eclipse, o caminho é o seguinte:

Vá na aba “Project” e clique em “Clean…”, então selecione a opção “Clean projects selected below” e selecione o seu projeto. Então, clique em OK.
Caso dê erro no clean do projeto, normalmente significa que há alguma falha na compilação, pode ser um XML errado, ou um código Java errado, ou ainda algum .jar (library) não detectado.

Espero que ajude! :smiley:

ideiainformatica

Não resolveu.

Tentei resolver seguindo instruções de http://stackoverflow.com/questions/2680827/conversion-to-dalvik-format-failed-with-error-1-on-external-jar mas não deu certo.

Valkyrium

Olha, pode ser problema de versão do Android. Verifica se a versão de compilação do Android está errada, ou foi modificada por engano. Tanto no AndroidManifest.xml como no project.properties.

Tente clicar com o botão direito no projeto, ir em Android Tools e clica em Fix Project Properties.

Vamos gastando as alternativas… =P

ideiainformatica

Nada feito

Valkyrium

Curiosidade: suas libraries estão numa pasta chamada “libs” ou “lib”?

Valkyrium

Outra coisa, tente remover todas suas libs que estiverem como “referenced”.

Vá nas propriedades do seu projeto, entre em “Java Build Path”, e depois em “Order and Export”. Se tiver alguma lib selecionada/checada, tire, e tente dar um “clean” novamente.

ideiainformatica

Não tinha nada marcado, mesmo assim dei um deselect e tentei de novo, mas nada ainda.

Em Libraries, excluí o Android 4.2.2 e dei Clean para ele recriar, mas também não resolveu.

Valkyrium

Eita, tá complicado, hein?

Então, sobre as libs: a sua pasta com as libraries se chama “libs” ou “lib”?

ideiainformatica

Tem duplicidade mesmo, vejam o erro:

[2013-05-14 20:19:33 - idepag] Found 2 versions of android-support-v4.jar in the dependency list,
[2013-05-14 20:19:33 - idepag] but not all the versions are identical (check is based on SHA-1 only at this time).
[2013-05-14 20:19:33 - idepag] All versions of the libraries must be the same at this time.
[2013-05-14 20:19:33 - idepag] Versions found are:
[2013-05-14 20:19:33 - idepag] Path: C:\Android\Works\MinhaAction\libs\android-support-v4.jar
[2013-05-14 20:19:33 - idepag] 	Length: 337562
[2013-05-14 20:19:33 - idepag] 	SHA-1: 27c24d26e4c5d57976e6926367985548678e913c
[2013-05-14 20:19:33 - idepag] Path: C:\Android\Works\idepag\libs\android-support-v4.jar
[2013-05-14 20:19:33 - idepag] 	Length: 385685
[2013-05-14 20:19:33 - idepag] 	SHA-1: 48c94ae70fa65718b382098237806a5909bb096e
[2013-05-14 20:19:33 - idepag] Jar mismatch! Fix your dependencies

Como resolver? Já tentei de tudo

Valkyrium

Ah sim, bom, você está utilizando ActionBarSherlock?
Ele realmente tem este erro com o Android Support.

Simplesmente exclua o android-support-v4.jar do seu projeto, que se localiza na pasta “libs”. E dê clean novamente.

ideiainformatica

Já tinha feito isto e agora o aplicativo não executa nem com Android 4.1.2 nem com 2.3.3, mas consigo exportar e gerar o APK.

Lembro que na aba Libraries do Java Build Path tinha, além do grupo Android Dependencies um grupo 4.2.2, mas um tópico que encontrei no stackoverflow (http://stackoverflow.com/questions/2680827/conversion-to-dalvik-format-failed-with-error-1-on-external-jar falou para excluir e dar Clean, da primeira vez este Android 4.2.2. voltou, mas fui fazer de novo e ele não está lá, como faço para recolocá-lo?

Mas como publicar algo que dá erro de execução? Não pretendo fazer isto, arrisco ter um aplicativo inválido.

Os erros são:

05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type android.view.MenuItem cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type android.os.Bundle cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type android.view.View cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type android.view.Menu cannot be resolved. It is indirectly referenced from required .class files
05-14 20:56:51.079: E/AndroidRuntime(2111): 	The type android.content.Intent cannot be resolved. It is indirectly referenced from required .class files
Valkyrium

Vixe, não se deve em hipótese alguma tirar a library do Android, se não perde todo o import da app.

Bom, clica com o botão direito no projeto e vá em Properties. Na aba Android, selecione novamente o seu Build Target, ou seja, sua versão do Android. Então aplique (Apply) e dê um OK.

ideiainformatica

Não mudou nada, continua só Android Dependencies

Valkyrium

Cara, tenta fazer o seguinte, copie todas suas libs e seus códigos e packages e crie uma nova app na versão que você deseja. Então, se der erro novamente de duplicidade do android-support-v4.jar, faça o que eu te recomendei, exclua ele do seu projeto novo. E verifique se isso ajuda. É um tanto chato fazer isto, mas vejo que é necessário.

Valkyrium

Ah! E NÃO EXCLUA O PROJETO ANTIGO! Caso não dê certo, pelo menos não perdeu seu projeto :]

ideiainformatica

Não brinca comigo, vou procurar outra solução, o aplicativo estava funcionando, só incluí a ActionBarSherlock, faltava só gerar o APK e publicar uma nova versão, não [e possível ter que refazer tudo.

Tem que existir algo mais prático dom que isto.

Estou espantado com a programação Android, é braçal demais.

Além disto, uma hora eu saio do Eclipse com o sistema funcionando, ao entrar de novo já tem erro de compilação, uma coisa louca.

Depois de 35 anos de desenvolvimento de sistemas, pensei que existisse algo menos braçal no século XXI.

Valkyrium

Confesso que o Eclipse tem algumas “frescuras” atípicas, e isso incomoda bastante. O que eu solicitei pra você fazer é apenas uma refatoração da app. Simplesmente criar um projeto novo com seu conteúdo antigo, apenas para refazer qualquer problema de path e afins. Você não vai ter que refazer o código inteiro, é apenas o esqueleto da app. O código basta você copiar e colar os arquivos para o novo projeto.
Sobre o ActionBarSherlock, eu tive o mesmo problema de duplicidade. A única coisa que precisei fazer foi excluir meu android-support-v4.jar e dar um clean no projeto, e pronto, funcionou!
Mas eu acho que você excluiu arquivos importantes para a build da app e tem certas coisas que não dá pra voltar atrás (não tenho certeza disso).
Caso consiga voltar a build original e apenas excluir o Android Support, é a melhor opção.

ideiainformatica

Alguém pode me ajudar nesta situação?

Como volto o Android 4.2.2 para a aba Libraries do Java Build Path?

Virou desespero

ideiainformatica

Consegui reincluir em Properties -> Java Build Path -> [Aba] Libraries -> [Botão]Add Library -> Android Classpath Conteiner [next]-> Escolhe o Projeto e PRONTO

No entanto, apesar de ter excluído a JAR de Libs, continua com os erros de compilação citados.

Vou fazer mais testes.

ideiainformatica

É, a mensagem do Dalvik continua,ms olha que estranho:

Ele está procurando na Libs de outra pasta "idepagpro"e não na “idepag” do meu aplicativo, veja abaixo. Como posso mudar isto?

[2013-05-15 11:20:18 - idepagpro] java.io.FileNotFoundException: C:\Android\Works\idepagpro\libs\android-support-v4.jar (O sistema não pode encontrar o arquivo especificado)
[2013-05-15 11:20:29 - idepagpro] java.io.FileNotFoundException: C:\Android\Works\idepagpro\libs\android-support-v4.jar (O sistema não pode encontrar o arquivo especificado)
[2013-05-15 11:20:36 - idepagpro] java.io.FileNotFoundException: C:\Android\Works\idepagpro\libs\android-support-v4.jar (O sistema não pode encontrar o arquivo especificado)
[2013-05-15 11:20:46 - idepagpro] java.io.FileNotFoundException: C:\Android\Works\idepagpro\libs\android-support-v4.jar (O sistema não pode encontrar o arquivo especificado)
Valkyrium

Tente inserir o android-support-v4.jar dentro da pasta libs do seu projeto “idepagpro”.

ideiainformatica

Aí compila e executa, mas não gera o APK por causa da mensagem tema deste tópico.

É muito estranho buscar o JAR em pasta do outro aplicativo, não? Sabe onde tem a informação para tirar isto?

Principalmente porque o outro foi criado depois deste.

O que pode ter acontecido é que ambos os aplicativos usam a mesma aplicação MinhaAction que é a library do ActionBar Sherlock e que alterei o outro por último.

Valkyrium

O que acontece é o seguinte: a versão do android-support do ActionBarSherlock é diferente da versão do android-support da sua aplicação. Ou há alguma outra app sua que você colocou como library para seu projeto, e as versões do android-support são diferentes. O Android pede para que você encaixe uma versão idêntica e compatível para as duas.

Como eu disse, este problema ocorre comigo quando coloco o ActionBarSherlock nos meus projetos, porém eu simplesmente excluo o android-support da minha aplicação e dou um clean e pronto!
O que pode estar acontecendo é que a versão do android-support da sua aplicação é mais atual do que a da sua library. Se isto ocorrer, você deve fazer o processo contrário: excluir o .jar da sua library, e não do projeto.

Marky.Vasconcelos

O Android vai automaticamente importas os jars das pastas libs/ dos projetos que voce usa como dependencia.

ideiainformatica

Só consegui depois de colocar as JARs de cada projeto na mesma versão.

Como a mais nova é a do meu aplicativo e não da Library, foi esta que usei, depois, é claro, de salvar as anteriores para o caso de dar errado…

Obrigado, amigos.

Valkyrium

Opa, que bom que conseguiu!

Qualquer dúvida, é só dar um toque! :smiley:

ideiainformatica

Muito obrigado pela ajuda, valeu mesmo, espero poder retribuir um dia.

Sucesso a todos.

Criado 29 de abril de 2012
Ultima resposta 16 de mai. de 2013
Respostas 34
Participantes 7