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ê:
- 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
- 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.
- 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 ...
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.
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.