Estou recebendo esse erro ao executar meu aplicativo Android (limpei-o e construí-o, mas o erro ainda está presente)
- Sincronização: OK
- Fazer Projeto: OK
- Limpo: OK
- Executar: erro
Erro: Falha na execução da tarefa ': app: dexDebug' .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe '' finalizado com o valor de saída diferente de zero 2
Meu arquivo gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
EDIT: eu não vi "compile fileTree (dir: 'libs', inclua: ['* .jar'])" ele estava compilando duas vezes minhas bibliotecas, então apenas comento:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
e funciona bem.
android
asp.net-web-api
gradle
build.gradle
Maverick.pe
fonte
fonte
Respostas:
É possível que esse problema ocorra devido à excedência do limite de 65x dos métodos impostos pelo Android. Esse problema pode ser resolvido limpando o projeto e removendo algumas bibliotecas e métodos não utilizados das dependências no build.gradle, OR adicionando suporte multidex.
Portanto, se você precisar manter bibliotecas e métodos, poderá ativar o suporte a multi dex declarando-o na configuração gradle.
Você pode ler mais sobre o suporte multidex e desenvolver aplicativos com mais de 65 mil métodos aqui .
fonte
./gradlew assembleDebug --stacktrace --debug
. Eu vi esse erro no meu casocom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Para mim, o problema era que eu havia colocado um código de biblioteca de conformidade desnecessário no build.gradle
que estava causando mais de 65k métodos, removendo-o, gradle sync, limpando o projeto e, em seguida, executando novamente e esse erro foi interrompido. Eu precisava apenas de mapas e gcm, então eu coloquei essas linhas e o projeto sincronizado
Oi pessoal, novamente encontrei esse problema e, desta vez, foi por causa da alteração da versão das ferramentas de compilação e realmente foi necessário que eu habilitasse o multidex ... então eu adicionei o arquivo build.gradle do meu aplicativo ..
E crie uma classe que estenda a classe Application e inclua esse método dentro da classe.
também incluir no método OnCreate também
fonte
Apenas no caso de alguém ainda estar lutando com isso e não ter idéia de por que isso está acontecendo e como consertar. De fato este erro
pode ter muitas razões para acontecer, mas certamente não algo relacionado à sua versão do JDK; portanto, não perca seu tempo na direção errada. Estas são duas razões principais para que isso aconteça
O primeiro caso pode ser corrigido da seguinte maneira: Descubra quais dependências você incluiu várias vezes. Para fazer isso, execute o seguinte comando no terminal do android studio
isso retornará todas as dependências, mas os arquivos jar incluídos na pasta lib tentam se livrar da duplicação marcada com asterisco (*), isso nem sempre é possível, mas em alguns casos você ainda pode fazê-lo, depois disso, tente excluir os módulos que estão incluídas muitas vezes, você pode fazer assim
Para o segundo caso, quando você exceder a sugestão de limite de método, tente minimizá-la removendo as bibliotecas incluídas (a nota soa como a primeira solução) se não houver maneira de adicionar multiDexEnabled true ao seu defaultConfig
isso aumenta o limite do método, mas não é a melhor coisa a se fazer devido a possíveis problemas de desempenho. IMPORTANTE adicionar apenas
multiDexEnabled true
adefaultConfig
não é suficiente, de fato, em todos os dispositivos executando o Android <5 Lollipop, isso resultará em um comportamento inesperado eNoClassDefFoundError
. como resolvê-lo é descrito aquifonte
Eu não sabia (até então) que "compile fileTree (dir: 'libs', inclua: ['* .jar'])" compile tudo o que tem extensão jar na pasta libs, então apenas comento (ou excluo) isso linhas:
e funciona bem. Obrigado mesmo assim! Foi mal.
fonte
compile fileTree(dir: 'libs', include: ['*.jar'])
em gradle. Isso me ajudou.compile fileTree(dir: 'libs', include: ['*.jar'])
mas ela ainda mostra o mesmo erro.Eu tive o mesmo problema e corrigi a remoção da biblioteca desnecessária
Eu removi a biblioteca e pude executar o projeto sem nenhum problema.
fonte
O meu foi resolvido ativando o multiDex para compilações de depuração.
fonte
Rejeito o JDK incorporado (em 32 bits) porque o JDK incorporado é de 64 bits
Clique com o botão direito do mouse em Projeto -> Configuração do módulo aberto -> Localização do SDK -> Desmarque Usar JDk incorporado e defina seu caminho do JDK, por exemplo, no Ubuntu / usr / lib / jvm / java-8-openjdk-i386
fonte
echo $JAVA_HOME
para o caminhoPossível problema: Você excedeu o limite de dex 65k métodos, pode ser que você tenha adicionado alguma biblioteca ou vários métodos antes que o problema ocorresse?
fonte
Se você já atualizou seu SDK e também está usando o google-play-services, precisará cuidar da dependência, pois há algum tipo de conflito com:
Siga o procedimento abaixo: compile 'com.google.android.gms: play-services: +' Substitua pela compilação 'com.google.android.gms: play-services: 6.5.87'
Nota: Aqui '6.5.87' é a versão do serviço google-play. Eu espero que isso ajude..
fonte
Eu removi o android-support-v4.jar da pasta libs e está funcionando !!!
se o seu projeto apresentar erro, verifique seu arquivo build.gradle
fonte
No meu caso, o problema era que a nova biblioteca (dependência gradle) que eu adicionei estava contando com outras dependências e duas dessas dependências subjacentes estavam em conflito / entrando em conflito com algumas dependências de outras bibliotecas / dependências no meu script de construção. Especificamente, adicionei o Apache Commons
Validator
(para validação de email) e duas de suas dependências (Apache CommonsLogging
e Apache CommonsCollections
) estavam em conflito com as usadas pelo Robolectric (porque versões diferentes das mesmas bibliotecas estavam presentes no meu caminho de construção). Portanto, excluí aquelas versões conflitantes das dependências (modules
) ao adicionar a nova dependência (aValidator
):Você pode ver as dependências do (s) seu (s) módulo (s) gradle (você pode ter apenas um módulo em seu projeto) usando o seguinte comando gradle (eu uso o wrapper gradle criado para você se você criou seu projeto no Android Studio / Intellij Idéia). Execute este comando no diretório raiz do seu projeto:
./gradlew: SEU-MÓDULO-NOME: dependências
Depois de adicionar essas
exclude
diretivas e tentar executar novamente, recebi umduplicate file
erro, poisNOTICE.txt
é usado por algumas bibliotecas do apache commons como Logging and Collections. Eu tive que excluir esse arquivo de texto durante a embalagem. No meu build.gradle, adicionei:Descobriu-se que a nova biblioteca (the
Validator
) pode funcionar com versões ligeiramente mais antigas de suas dependências / módulos (que já foram importadas para o meu caminho de construção por outra biblioteca (Robolectric)). Esse foi o caso desta biblioteca específica, mas outras bibliotecas podem estar usando a API mais recente das dependências subjacentes (nesse caso, você deve tentar verificar se as outras bibliotecas que dependem do módulo / dependência conflitantes podem trabalhar com o versão mais recente (excluindo a versão mais antiga do módulo / dependência nas entradas dessas bibliotecas)).fonte
No meu caso, recebi esse erro quando há 2 ou mais conflitos de bibliotecas (mesma biblioteca, mas versões diferentes). Verifique seu aplicativo build.gradle no bloco de dependências.
fonte
Existem duas alternativas que funcionarão com certeza:
Se o método acima não funcionou, tente o próximo.
Adicione o seguinte ao arquivo build.gradle no nível do aplicativo
fonte
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
, o que devo fazer a seguir?Atualizar meu Java SDK para a versão mais recente
1.7.0_79
e atualizar oSDK Location
underProject Structure
resolveu o problema para mim.fonte
Meu problema era que, além de ter
Eu também tinha esse traço:
O problema era que eu estava adicionando a mesma classe em duas bibliotecas diferentes. Removendo o arquivo de classe / jar de uma das bibliotecas, o projeto é executado corretamente
fonte
Para mim, eu estava adicionando todas as dependências do playstore
Mas eu precisava apenas do google map, então o tornei mais específico e o erro foi resolvido.
fonte
no meu caso, o problema era a versão de ferramentas de compilação, que era 23.0.0 rc3 e eu mudei para 22.0.1 e meu problema foi corrigido.
fonte
Você pode estar usando um cabo de baixa qualidade / com defeito para conectar seu dispositivo ao PC, troquei o cabo e funcionou para mim.
fonte
Este erro é causado pelo uso de um número maior de bibliotecas. No meu caso, 'compile' com.google.android.gms: play-services-9.4.0 'causou esse erro. Para evitar esse erro, use as bibliotecas necessárias. Por exemplo, se desejar para usar o Google Maps no seu aplicativo, use a compilação 'com.google.android.gms: play-services-maps: 9.4.0'. Ao adicionar a dependência dos serviços do Google Play, especifique apenas as bibliotecas necessárias. Por padrão, inclui todas as bibliotecas.
fonte
Em seu
gradle.build
arquivo, use esteE isso funciona bem.
fonte
Se você quiser ver o que exatamente está causando o erro, tente criar seu projeto via terminal gradle, como este
./gradlew assembleDebug --stacktrace --debug
. Eu vi o seguinte erro no meu casocom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Isso aconteceu quando eu estava tentando integrar o Google Maps ao meu projeto. Para corrigi-lo, simplesmente verifiquei as bibliotecas que estava incluindo
compile 'com.google.android.gms:play-services:9.8.0'
Eu simplesmente mudei para
compile 'com.google.android.gms:play-services-maps:9.8.0'
e o problema se foi
fonte
Eu tive o mesmo erro depois de converter meu projeto para
Kotlin
. Meu problema era que minha localização do jre foi alterada para um caminho inválido durante o processo (eu me pergunto por que isso poderia acontecer ... me fez perder tempo). Corrigido, fazendo o seguinte:Desmarcou a
Use embedded JDK
opção, que estava apontando para uma instalação antiga do JDK, e selecionou a correta:Depois de mudar isso, o erro desapareceu
fonte
TRABALHOU PARA MIM :)
Atualizei o java para a versão mais recente 8 anteriormente, era 7 e, em seguida, vá para OPEN MODULE SETTING clicando com o botão direito do mouse no projeto e alterei o caminho do jdk para / usr / lib / jvm / java-8-oracle o novo java 8 instalado. E reinicie o estúdio
verifique / usr / lib / jvm para o nome da pasta java 8
Estou usando o ubuntu
fonte