A classificação do Android Studio leva muito tempo para ser criada

225

Meu projeto do Android Studio costumava criar mais rápido, mas agora leva muito tempo para ser criado. Alguma idéia do que poderia estar causando os atrasos? Eu tentei https://stackoverflow.com/a/27171878/391401, mas sem efeito. Eu não tenho nenhum antivírus em execução que possa interromper as compilações. Meu aplicativo também não é tão grande (em torno de 5 MB ) e costumava ser construído em poucos segundos, mas não sabia o que havia mudado.

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running  
Harish
fonte
1
O que você usa, seu telefone Android ou qualquer emulador para executar seu aplicativo?
Ram Mansawala
Em execução no dispositivo
Harish
3
não sei porque google mudou de eclipse para o estúdio android .... estúdio Android suga
kapil
38
Quando o Android studio era novo, muitos no StackOverflow rejeitaram reclamações sobre isso porque era 'apenas uma versão beta'. No entanto, já faz alguns anos que era 'apenas uma versão beta' e ainda é lento, com 8 núcleos, 16 GB de RAM e um disco SSD. O antigo Eclipse configurado nesta máquina é tão rápido quanto um piscar de olhos.
Andrew S
3
Leia isto: pissedoff-techie.blogspot.in/2016/01/…
Utsav Gupta

Respostas:

453

No Android Studio, vá para Arquivo -> Configurações -> Compilação, Execução, Implantação -> Ferramentas de Compilação -> Gradle

(se estiver no mac) Android Studio -> preferências ... -> Compilação, Execução, Implantação -> Ferramentas de compilação -> Gradle

Marque o 'Trabalho off-line' em 'Configurações globais do Gradle'

Reduzirá o tempo de construção de 90% de gradle.

verifique isso para reduzir o tempo de construção

se você acabou de adicionar uma nova dependência à sua nota, terá que desmarcar o trabalho offline ou a nota não poderá resolver as dependências. Após a resolução completa, você poderá verificar o trabalho offline para uma construção mais rápida

Biswajit Karmakar
fonte
11
Trabalhou muito bem. De 12 minutos a 5 segundos
Ramesh
18
essa configuração não para de buscar novas bibliotecas quando as adicionamos ao build.gradle?
29516 Dany Y
48
quando você adiciona uma nova biblioteca, então você tem que fazer isso on-line apenas para uma vez que será notificado pela construção Gradle para fazer projeto @DanyY executável
Biswajit Karmakar
15
Isso significa que o tempo todo o problema era a velocidade da Internet em vez da velocidade do processador?
1
Woah! Passou de mais de 15 minutos para 1 minuto: O
Cardinal - Reinstate Monica
150

Se você estiver usando os serviços do Google Play, verifique se não está usando isso no script de construção do Gradle:

compile 'com.google.android.gms:play-services:8.3.0'

Use apenas as APIs do Google que seu aplicativo está realmente usando. Se tudo o que você está usando é o Google Maps, você usaria o seguinte:

com.google.android.gms:play-services-maps:8.3.0

Quando fiz isso, meu tempo de compilação passou de mais de 2 minutos para cerca de 25 segundos. Para obter uma lista das APIs do Google nas quais você pode compilar seletivamente, consulte:

https://developers.google.com/android/guides/setup

AndroidDev
fonte
12
Você merece mais de 100 votos. Todas as outras fontes sugerem adição org.gradle.parallel=truee linha de comando relacionada ... mas nenhuma fornece uma compreensão simples e direta do que realmente está acontecendo. Usando seu conselho, meu tempo de construção passou de 1 min 5 segundos para 3.427 segundos. Impressionante!!
Sauron
Muito obrigado, este foi o meu principal problema também. Agora tudo está funcionando muito bem.
Alnaji 17/04
1
Funciona bem. Use este link para encontrar o nome da biblioteca do Play Services: developers.google.com/android/guides/…
PC.
Você mereceu um visto ... Você resolveu o meu problema. O problema é nos serviços Google Play ... Thanks :)
Karue Benson Karue
Isso não apenas ajudou nos problemas de compilação longos, como agora também posso implantar diretamente no dispositivo Android sem usar o Proguard durante a depuração (anteriormente eu estava recebendo um erro sobre o limite do método 65K). obrigado!
magritte
52

Encontrei uma maneira fácil e melhor de criar gradle

acesse seu aplicativo >> abra seu gradle.properties e altere algumas linhas dele [remove # ]

caso contrário, você também pode copiar e colar meu snippet abaixo

    # Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx2048m -XX:MaxPermSize=512m
 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 org.gradle.parallel=true

funcionou para mim mais cedo, leva quase 2-3 minutos agora está levando apenas 5-6 segundos

no cenário acima, minha máquina Mac tem 8 GB de RAM, então eu atribuí 4 GB para Gradle

Android é tudo para mim
fonte
Isso reduziu meu tempo de criação de mais de 30 minutos para 24 minutos ... Existe alguma maneira de reduzir ainda mais ...?
Programming Pirate
34

Encontrado o motivo !! Se o Android Studio tiver uma configuração de servidor proxy e não puder alcançá-lo, levará muito tempo para construir, provavelmente está tentando chegar ao servidor proxy e aguardando o tempo limite. Quando eu removi o servidor proxy definindo seu bom funcionamento.

Removendo o proxy: File > Settings > Appearance & Behavior > System settings > HTTP Proxy

Harish
fonte
3
Como remover o servidor proxy?
Joolah
2
No Windows File> Configurações> Aparência & Comportamento> Configurações do sistema> HTTP Proxy
Harish
2
Meu problema também estava no proxy, mas nisso eu tive que adicionar também o proxy HTTPS nas propriedades gradle. O proxy HTTP não foi suficiente: systemProp.http.proxyHost = xxx.xxx.xxx.xxx systemProp.http.proxyPort = 8080 systemProp.https.proxyHost = xxx.xxx.xxx.xxx systemProp.https.proxyPort = 8080
user3098756
26
AS é uma piada completa e bs. Estou cansado dessa bobagem.
The_Martian
9
Concordo!!! Estou sofrendo muita dor ao migrar um grande projeto do Eclipse, e agora que os erros são resolvidos, a criação com o AS nunca termina !!! Eu odeio AS @The_Martian
Josh
20

Seguir as etapas o tornará 10 vezes mais rápido e reduzirá o tempo de construção em 90%

Primeiro, crie um arquivo chamado gradle.properties no seguinte diretório:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

Adicione esta linha ao arquivo:

org.gradle.daemon=true

org.gradle.parallel=true
user779370
fonte
4
Você pode configurá-lo diretamente em gradle.properties localizado no projeto studio.
Biswajit Karmakar 06/04
3
Sim, também ativar essa opção org.gradle.jvmargs = -Xmx2048m XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370
2
Set MaxPermSize = 1024m
Biswajit Karmakar
Por que essas propriedades não são predefinidas? Existem desvantagens?
oli
Esta opção deve ser usada apenas com projetos dissociados. Mais detalhes, visite gradle.org/docs/current/userguide/…
javad
17

A ativação dos recursos do Java 8 causou uma compilação lenta mortal

gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Depois de excluir as linhas acima, ele cria em segundos.

Problema: compilar com Jack leva muito tempo

Resposta do gerente de projeto

Estamos cientes de que os tempos de compilação são um problema com Jack no momento. Temos melhorias no plug-in 2.4 Gradle que devem ser uma melhoria significativa para compilações incrementais.

A partir de agora, a versão mais recente do Gradle que posso encontrar é a 2.3.0-beta4

tchelidze
fonte
4
Sim eu concordo. Para habilitar o java 8 no android studio, você precisa usar o Jack e, ao fazer isso, meus tempos de compilação voam para a lua de 1 a 2 minutos para 16 minutos ... o que ... É inutilizável no momento. Como sempre, ótimo trabalho Google
Karol Żygłowicz 21/02
16

Leitura recomendada: Como economizo 5h / semana nas versões Gradle !

De acordo com este excelente post, você deve tentar otimizar o seguinte:

  • Gradle Daemon
  • Execução paralela de projetos
  • Configurar projetos sob demanda
  • Módulos são caros ...
Oded Regev
fonte
7

A solução @AndroidDev funcionou para mim. Eu incluí toda a lib no gradle.

compile 'com.google.android.gms:play-services:8.4.0'

Mudando para resolver o problema. De 4 min a 1 min.

compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'

Thnx

KlevisGjN
fonte
4

Verifique sua conexão com a Internet . Se a velocidade da Internet for muito lenta, a construção de gradles também levará muito tempo para ser construída. Verifico alterando minha conexão de internet wifi com outra conexão de velocidade boa. Agora, o tempo de compilação é normal. Por favor, tente isso antes de ir para outras soluções. alguém tomará a decisão errada de reinstalar ou alterar as configurações. Eu espero que isso ajude. Obrigado e cumprimentos.

Karthikeyan Dheshnamoorthy
fonte
Certifique-se de permitir o Android Studio no Firewall. Estava esperando por quase 15 minutos o gradle em uma nova instalação quando, de repente, o pop-up da janela do Firewall me pediu para permitir. Poderia ter sido mais cedo embora
Mohd.Zafranudin
2

1) Meu tempo de compilação aumentou bastante depois que adicionei algumas novas dependências de biblioteca ao meu arquivo gradle, o que acabou sendo necessário para usar o multidex depois disso. E quando eu configurei o multidex corretamente, meus tempos de compilação aumentaram para 2-3 minutos. Portanto, se você deseja tempos de construção mais rápidos, evite usar multidex e, na medida do possível, reduza o número de dependências da biblioteca.

2) Além disso, você pode tentar ativar o "trabalho offline" no android studio, como sugerido aqui, que faz sentido. Isso não buscará bibliotecas toda vez que você criar uma compilação. Talvez a conexão lenta ou o uso de proxy / vpn com o "trabalho offline" desabilitado possa levar a tempos de compilação lentos.

3) serviços do Google - como mencionado aqui, não use o pacote inteiro, use apenas as partes necessárias.

lxknvlk
fonte
1

Na versão beta do Android studio 2.0, eles lançaram um recurso chamado Instant Run . Reduz o tempo de construção por um grande fator. O conceito principal é que o Android Studio apenas insere as pequenas alterações feitas em um aplicativo já em execução.

Ele classifica as alterações que fazemos em nosso código em três partes: troca a quente, troca a quente e troca a frio, com base na quantidade de carga que a alteração colocaria na compilação. Depois disso, ele simplesmente troca o código no aplicativo já em execução e podemos ver as alterações em execução em alguns segundos. Consulte o documento para obter mais informações.

Aqui você pode baixar a visualização do Android Studio 2.0.

PS: Existem alguns problemas com esse recurso. Eles listaram isso nos documentos. Confira antes da instalação.

Akeshwar Jha
fonte
1
  1. Vá para Arquivo-> Configuração -> Gradle -> Configure-o no modo offline e verifique
vikas khot
fonte
1

Eu estava enfrentando o mesmo problema por um longo tempo, mas o resolvi ajustando as configurações em gradle.

Etapa 1: no aplicativo Módulo, adicione dependência no BuildScript

buildscript {
 dependencies {
         classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
}
}

Etapa 2: adicione dexOption e dê o seguinte heapSize

  dexOptions {
    incremental = true;
    preDexLibraries = false
    javaMaxHeapSize "4g"
}

Etapa 3: adicionar produtos

    productFlavors {
    dev {
        minSdkVersion 23
        applicationId = "com.Reading.home"
    }
    prod {
        minSdkVersion 15
        applicationId = "com.Reading.home" // you don't need it, but can be useful

    }
}

Isso deve reduzir o tempo de construção.

Binesh Kumar
fonte
0

Se você estiver usando o Windows 8 ...

As soluções DroidArc e AndroidDev são úteis, mas não suficientes. Meu problema estava relacionado ao meu sistema operacional Windows 8 e ao seu uso de disco 100%.

Especialmente o serviço de Pesquisa do Windows, foi o mais consumido. Desative-o com: cmd (Admin)> net.exe stop "Windows search"

Segui as instruções neste link e ele resolveu o problema com 4 dicas reais para corrigir 100% de uso do disco e melhorar o desempenho do Windows

Espero que isto ajude.

dianakarenms
fonte
0

Eu tive o mesmo problema no kotlin. A atualização do tempo de execução desatualizado do kotlin resolveu para mim

Rami Amro Ahmed
fonte
0

Eu tive problemas como esse, especialmente ao depurar ativamente através do meu telefone; às vezes levava 27 minutos. Fiz as seguintes coisas e tome nota da explicação em cada uma delas - uma pode funcionar para você:

  1. Alterei meu arquivo gradle.properties (em scripts Gradle, se você tiver a visualização do arquivo de projeto na opção Android OU dentro da pasta do projeto). Eu adicionei isso porque meu computador tem memória de sobra - você pode atribuir valores diferentes no final, dependendo das especificações do computador e dos requisitos mínimos do android studio (Xmx8000m -XX: MaxPermSize = 5000m):

org.gradle.daemon = true

org.gradle.configureondemand = true

org.gradle.parallel = true

android.enableBuildCache = true

org.gradle.caching = true

org.gradle.jvmargs = -Xmx8000m -XX: MaxPermSize = 5000m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

  1. Isso não resolveu completamente meu problema no meu caso. Portanto, eu também fiz como outros haviam sugerido antes - para tornar minhas compilações offline.

Arquivo -> Configurações / Preferências -> Construção, Execução, Implantação -> Gradle

Configurações globais de classificação (na parte inferior)

Marque a caixa de seleção denominada: Trabalho offline.

  1. Isso reduziu substancialmente o tempo, mas foi irregular; às vezes levava mais tempo. Portanto, eu fiz algumas alterações no Instant Run:

Arquivo -> Configurações / Preferências -> Compilação, Execução, Implantação -> Execução Instantânea

Verificado: Ativar execução instantânea no código de troca a quente ...

Verificado: reiniciar atividade nas alterações de código ...

  1. A mudança acima também foi irregular e, portanto, procurei descobrir se o problema pode ser os processos / memória executados diretamente no telefone e no computador. Aqui, liberei um pouco de memória no meu telefone e armazenamento (que era de 98% - até 70%) e também no gerenciador de tarefas (Windows), aumentei a prioridade do Android Studio e do Java.exe para High. Dê esse passo com cuidado; depende da memória do seu computador.

  2. Depois de tudo isso, meu tempo de compilação durante a depuração ativa do telefone às vezes caiu para 1 a 2 minutos, mas às vezes aumentou. Decidi fazer um hack, o que me surpreendeu , levando-o a segundos melhores ainda no mesmo projeto que me deu 22 - 27 minutos e 12 segundos !:

Conecte o telefone para depuração e clique em EXECUTAR

Após o início, desconecte o telefone - a compilação deve continuar mais rápido e gerar um erro no final indicando o seguinte: Sessão 'app': Erro ao instalar APKs

Reconecte o telefone novamente e clique em EXECUTAR novamente ...

ALTERNATIVAMENTE

Se o script / função / método que estou depurando for puramente JAVA, não JAVA-android, por exemplo, testando uma API com JSONArrays / JSONObjects, testarei minhas funções / métodos java no Netbeans, que podem compilar um único arquivo e mostrar a saída mais rapidamente, em seguida, tornar alterações necessárias nos meus arquivos do Android Studio. Isso também me poupa muito tempo.

EDITAR

Tentei criar um novo projeto Android no armazenamento local e copiei todos os meus arquivos do projeto anterior para o novo - java, res, manifesto, aplicativo gradle e projeto gradle (com a dependência mais recente do caminho de classe gradle). E agora posso construir no meu telefone em menos de 15 segundos.

Firsake
fonte
0

No seu build.gradle, se você tiver minifyEnabled para depuração, remova-o. Eu o tinha no meu projeto e levou cerca de 2-3 minutos para ser construído. Depois de analisar o progresso da construção, achei isso como culpado. Ao excluir a linha comentada abaixo, meu problema foi corrigido.

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }//debug{
         //   minifyEnabled true
         //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}
Mukesh
fonte
0

Eu tive o mesmo problema, até a compilação do gradle funcionou por 8 horas e fiquei preocupado. Mas depois mudei a versão compilada do sdk e a versão mínima do sdk no build.gradle arquivo como este.

Mais velho:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 9
    targetSdkVersion 25
}

Novo (atualizado):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }
Pir Fahim Shah
fonte
-2

Eu tive um problema semelhante no meu computador. O Windows Defender estava bloqueando parte do Edifício Gradle. Eu desativei, funcionou bem depois disso.

rickdroio
fonte
-43

Tente reiniciar o computador e execute o Android Studio novamente. Funcionou para mim ao tentar criar um projeto Cordova / Phonegap com uma base de código de destino do Android.

racl101
fonte