Estou desenvolvendo um aplicativo Android usando o Android 2.2, o tamanho do APK do meu aplicativo é 22.5 MB e gostaria de criar uma nova compilação para um tablet Samsung. Eu recebi o seguinte erro:
INSTALL_FAILED_DEXOPT
Como faço para resolver esse tipo de erro?
Respostas:
Reiniciando o emulador
Android SDK and AVD Manager
e selecionando a opçãoWipe User Data
resolveu esse problema para mim.Você pode encontrar a opção destacada na imagem abaixo:
fonte
adb kill-server
entãoadb start-server
deve resolver o seu problema. Pode existir um aplicativo mais antigo, depois desinstale-o primeiro.Isso parecia estar relacionado ao espaço em disco para mim. Um emulador 5.1 recém-lançado é inicializado com um erro "pouco espaço em disco" - e, observando as propriedades do emulador, o espaço padrão alocado para armazenamento interno é de 800 MB, o que parece baixo.
Solução, portanto, foi aumentar isso (fui para 4GB). Estranhamente, o emulador ainda é inicializado com o mesmo aviso de espaço em disco, mas a redefinição de fábrica (Configurações -> Backup e Restauração dentro do emulador) resolveu-o totalmente para mim.
Um pouco estranho que não funcione imediatamente com as configurações padrão.
fonte
Sua versão antiga do aplicativo que você está instalando possui bibliotecas / jarros dependentes que foram alterados. Corri para esse problema ao atualizar outros arquivos jar que meu aplicativo estava atualizando.
Você precisará desinstalar a versão antiga e não terá mais problemas ...
Configurações -> Aplicativos -> Gerenciar aplicativos -> [Localizar e desinstalar seu aplicativo]
Os erros INSTALL_FAILED_DEXOPT não devem entrar em erupção. Gostar
Whoo hoo.
fonte
Se você estiver usando o Android Studio , tente limpar seu projeto:
Compilar> Limpar Projeto
fonte
Parece que esta mensagem de erro pode ter muitas causas diferentes. O caso que encontrei foi em um dispositivo real (para que as soluções de bases do emulador não se aplicassem).
Basicamente, quando isso acontece, defina seu filtro Logcat como Verbose ou Warn , o que ajudará você a obter mais informações sobre a causa.
No meu caso, várias versões conflitantes do JUnit estavam sendo incluídas no projeto em que eu estava trabalhando (uma grande base de código existente). O aplicativo Android que eu estava tentando implantar tinha vários projetos de bibliotecas como dependências e, por engano, configurei as coisas para incluir vários arquivos jar do JUnit.
Eu descobri isso com base em uma série de mensagens do Logcat. Observe que a linha WARN fornece a causa:
fonte
Encontrei isso com o Android Studio 3.4.1, mas usando um emulador mais antigo (5.0). Este procedimento (no Mac) corrigiu o problema:
fonte
Alterei o tamanho da RAM e a capacidade de armazenamento interno do emulador Now IT IS Working ... no eclipse AVD manager
fonte
tente minha resposta https://stackoverflow.com/a/34918549/3737254
se você usa o android studio 2.0, desative a execução instantânea.
Para sua informação, a execução instantânea é um novo recurso do android studio 2.0 (nunca usei>. <)
como desabilitar: preferências -> compilação, execução e implantação -> execução instantânea -> desabilitar e depois funciona como mágica
Aproveitar!
fonte
Eu precisava desativar o Instant Run para corrigir o problema. Para desativar a Execução Instantânea no OS X, vá para Android Studio > Preferências > Compilação, Execução, Implantação > Execução Instantânea e remova o visto de
Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.fonte
dexopt error. Application failed to install
. Eu tentei estes antes de encontrar o seguinteadb kill-server
adb start-server
:, reiniciando o Android Studio e Factory redefinindo meu dispositivo.A única solução que funcionou para eu corrigir isso foi aumentar a RAM da VM para 4 GB.
fonte
Hoje tive o mesmo problema com o Android Studio em um novo dispositivo virtual. Parecia que eu tinha baixado a
x86_64
imagem, recriando o VD com ax86
imagem equivalente corrigida.Eu esperava obter um
INSTALL_FAILED_NO_MATCHING_ABIS
neste caso, mas de alguma forma eu estava preso comINSTALL_FAILED_DEXOPT
fonte
x86
falha. Depois de baixar a imagem e alterar o emulador parax86_64
o erro se foi. Eu usei a imagem do sistema API 21.x86_64
imagem em vez da imagemx86
. Eu também estava usando um API 21 AVD (Nexus 5).Estou trabalhando com o Android Studio e tive o mesmo erro.
A exclusão da pasta de compilação do Modul principal ajudou. Depois de excluir tudo, volte ao normal.
fonte
INSTALL_FAIL_DEXOPT geralmente tem a ver com o limite colocado em classes.dex. Em qualquer coisa, o dexopt pré-ICS falhará em algo acima de 5 MB. Versões recentes do Android usam um buffer de 8 ou 16 MB.
Verifique o tamanho do classes.dex no seu APK. Também seria bom ver qual é a contagem do seu método, já que o dex tem um limite de 65536 método / campo.
Referências:
Erro ao instalar o aplicativo (INSTALL_FAILED_DEXOPT)
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
Como reduzir o código - limite do método 65k em dex
fonte
Corri para este problema depois de ativar o sinalizador jumboMode na build (
dex.force.jumbo=true
). Tudo funcionou bem em dispositivos Android mais recentes, mas a instalação falhou no Gingerbread.Portanto, se o seu aplicativo exigir o modo jumbo devido à irritante restrição de 65k, tente cortar alguns códigos / seqüências de caracteres não utilizados e defina o modo jumbo novamente como falso.
fonte
classes.dex
não chega à final.apk
. Executandogradlew --offline clean && gradlew --offline assembleDebug
coisas fixas para mim o tempo todo. A partir desse ponto, você pode começar a iniciar o aplicativo no Android Studio novamente.EDIT: Antes que eu disse acima ir para o Gerenciador de Tarefas e matar todos
cmd.exe
econhost.exe
processos (ou apenas aquele em queaapt
ficou preso). Caso contrário,aapt
iria travar a partir de agora quando iniciado a partir da linha de comando com o erro infame-1073741819
.fonte
build.gradle
arquivo de projeto raiz . Entre as dependências do buildscript, deve haverclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
.Eu obtive o mesmo erro e o corrigi aumentando o tamanho do armazenamento interno.
O armazenamento interno foi inicialmente definido para 32 MB (eu sei) e, em seguida, instalei alguns aplicativos, o que deixou menos espaço do que o necessário para a instalação.
fonte
verifique o espaço de armazenamento no seu dispositivo
fonte
Desinstalei o aplicativo e recebi o erro INSTALL_FAILED_DEXOPT. Se você estiver trabalhando com o Android Studio / gradle: gradle clean fez o truque para mim, Cheers.
fonte
na mudança build.gradle compilada e compilada na versão mais recente. e funcionou para mim.
================
fonte
muitas respostas aqui, mas talvez isso possa ajudar alguém que tive esse problema com o dispositivo real e o problema estava com o D8
tente adicionar isso ao seu gradle.properties e funciona para mim
fonte
Eu estava recebendo esse problema ao tentar instalar em dispositivos 2.3 (bom em 4.0.3). Acabou sendo devido a um projeto lib eu estava usando vários frascos tiveram que eram para o material já no android por exemplo HttpClient e analisadores XML etc. Olhando para
logcat
me levou para encontrar este como ele foi me dizendo que foi matar aulas devido a eles já estar presente. Bom erro original inútil lá!fonte
Eu tive esse teste de erro em um dispositivo real. Limpar o cache / desinstalar, reiniciar tudo não funcionou para mim, excluir o conteúdo da pasta de compilação :) (Android studio)
fonte
Não existe uma solução genérica, você precisa encontrar o erro relatado no seu Logcat para descobrir isso. Às vezes, é uma classe que não pode ser 'dexada' devido ao uso de uma classe não disponível na API de destino especificada, por exemplo. Ou pode ser uma classe que você está fazendo referência no seu código, mas a biblioteca em que está não está sendo empacotada.
fonte
Considere usar o programa para reduzir seu APK. Eu tenho o mesmo problema se tentar instalar um APK grande de 25 MB em um antigo dispositivo Samsung Galaxy Ace 2.3.6 sem reduzir / otimizar o código com o programa.
O modo Jumbo e a reinicialização do dispositivo não estão funcionando.
fonte
No meu caso, isso foi um bug no plugin kotlin, versão 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
Este erro apareceu em dispositivos antigos (API 16).
Corrigido isso removendo as anotações @Parcelize e substituindo-as por este gerador de código: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
fonte
targetSdkVersion 22 // 17 ==========================> defina esse número menor ou igual à versão do sistema operacional Android em dispositivos pode ajudar
fonte
Eu tive esse problema quando havia alguns caracteres Unicode nos nomes dos meus métodos (devido a, de todas as coisas, copiar / colar de um arquivo do powerpoint) que a Dalvik não gostou. Você pode ver isso observando a saída do Logcat enquanto tenta instalar o APK.
Isso estava em um dispositivo real.
fonte
Resolvido corrigindo a data e hora no telefone (era uma data padrão 01.01.1980) e limpando o projeto.
fonte
Eu havia mudado minha versão do suporte da versão 4 do Android para o SDK 21 e tive esse erro. Então, voltei a versão de suporte para a versão antiga (antes de 21) e funcionou. O erro estava ocorrendo apenas no android 2.3
fonte
Eu encontrei esse problema quando estava tentando atualizar as novas ferramentas de compilação 24.0.1. A conexão com a Internet foi perdida e as ferramentas não foram baixadas com sucesso. Depois disso, recebi esse erro e passei muito tempo tentando resolvê-lo. Mas quando atualizei com êxito as ferramentas de compilação - problema resolvido. Boa sorte.
fonte