La creazione di Android Studio richiede troppo tempo


225

Il mio progetto Android Studio era solito costruire più velocemente ma ora ci vuole molto tempo per costruirlo. Qualche idea su cosa potrebbe causare i ritardi? Ho provato https://stackoverflow.com/a/27171878/391401 ma nessun effetto. Non ho alcun antivirus in esecuzione che potrebbe interrompere le build. Anche la mia app non è così grande (circa 5 MB ) e si costruiva in pochi secondi ma non sono sicuro di cosa sia cambiato.

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  

1
Cosa usi, il tuo telefono Android o qualsiasi emulatore per eseguire la tua applicazione?
Ram Mansawala,

In esecuzione sul dispositivo
Harish

3
non perché google sia passato da eclissi ad Android Studio .... Android Studio fa schifo
Kapil

38
Quando Android Studio era nuovo, molti su StackOverflow hanno respinto i reclami perché era "solo una versione beta". Tuttavia, ormai sono passati alcuni anni da quando era "solo una beta" ed è ancora lento e con 8 core, 16 GB di RAM e un disco SSD. Il vecchio Eclipse installato su questa macchina è veloce come un battito di ciglia.
Andrew S,

Risposte:


453

In Android Studio vai su File -> Impostazioni -> Build, Execution, Deployment -> Build Tools -> Gradle

(se su Mac) Android Studio -> preferenze ... -> Build, Execution, Deployment -> Build Tools -> Gradle

Controlla la voce "Lavoro offline" in "Impostazioni Global Gradle"

Ridurrà il 90% dei tempi di costruzione in pendenza.

controlla questo per ridurre i tempi di costruzione

se hai appena aggiunto una nuova dipendenza nel tuo voto, dovrai deselezionare il lavoro offline o il grado non sarà in grado di risolvere le dipendenze. Dopo la risoluzione completa, puoi controllare il lavoro offline per una build più veloce


11
Ha funzionato alla grande. Da 12 minuti a 5 secondi
Ramesh

18
questa configurazione non smetterà di recuperare nuove librerie quando le aggiungeremo a build.gradle?
Dany Y

48
quando aggiungi una nuova libreria, devi renderla online solo per una volta, che verrà notificata da build graduale per rendere eseguibile il progetto @DanyY
Biswajit Karmakar

15
Vuol dire che per tutto il tempo il problema era la velocità di Internet invece della velocità del processore?

1
Woah! Sono passati da più di 15 minuti a 1 minuto: O
Cardinale - Ripristina Monica il

150

Se stai utilizzando i servizi di Google Play, assicurati di non utilizzarlo nel tuo script di build Gradle:

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

Utilizza solo le API di Google che la tua app sta realmente utilizzando. Se tutto ciò che stai utilizzando è Google Maps, utilizzeresti questo:

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

Quando l'ho fatto, il mio tempo di compilazione è passato da oltre 2 minuti a circa 25 secondi. Per un elenco delle API di Google che è possibile compilare in modo selettivo, vedere:

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


12
Meriti più di 100 voti. Ogni altra fonte suggerisce l'aggiunta org.gradle.parallel=truee la riga di comando ... ma nessuna fornisce una comprensione semplice e diretta di ciò che sta realmente accadendo. Usando il tuo consiglio, il mio tempo di costruzione è passato da 1 min 5 secondi a 3.427 secondi. Eccezionale!!
Sauron

Grazie mille, anche questo è stato il mio problema principale. Ora tutto funziona alla grande.
alnaji,

1
Funziona alla grande. Utilizza questo link per trovare il nome della libreria dei tuoi servizi di gioco: developers.google.com/android/guides/…
PC.

Ti meritavi un segno di spunta ... Hai risolto il mio problema. Il problema è nei servizi di Google Play ... Grazie :)
Karue Benson Karue,

Questo non solo ha aiutato con i problemi di lunga durata, ma ora posso anche implementarlo direttamente sul dispositivo Android senza usare Proguard durante il debug (in precedenza stavo ottenendo un errore sul limite del metodo 65K). Grazie!
magritte,

52

Ho trovato un modo semplice e migliore per costruire il gradle

vai alla tua app >> apri gradle.properties e modifica alcune righe da essa [rimuovi # ]

altrimenti puoi copiare e incollare anche il mio frammento di seguito

    # 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

ha funzionato per me prima ci vogliono quasi 2-3 minuti ora ci vogliono solo 5-6 secondi

nello scenario sopra la mia macchina mac ha 8 GB di RAM, quindi ho assegnato 4 GB per Gradle


Ciò ha ridotto il mio tempo di costruzione da 30+ minuti a 24 minuti ... Esiste un modo per ridurre ulteriormente ...?
Programmazione Pirata

34

Trovato il motivo !! Se Android Studio ha un'impostazione del server proxy e non riesce a raggiungere il server, è necessario molto tempo per la compilazione, probabilmente sta cercando di raggiungere il server proxy e in attesa di un timeout. Quando ho rimosso il server proxy impostando il suo corretto funzionamento.

Rimozione del proxy: File > Settings > Appearance & Behavior > System settings > HTTP Proxy


3
Come rimuovere il server proxy?
Joolah,

2
Su File di Windows> Impostazioni> Aspetto e comportamento> Impostazioni di sistema> Proxy HTTP
Harish,

2
Il mio problema era anche nel proxy, ma in quello, ho dovuto aggiungere anche il proxy HTTPS nelle proprietà gradle. Il proxy HTTP non era abbastanza: 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 è scherzo completo e bs. Sono solo stanco di questa assurdità.
The_Martian

9
Sono d'accordo!!! Sto soffrendo quantità ingenue di dolore per migrare un grande progetto da Eclipse, e ora che gli errori vengono cancellati, la costruzione con AS non finisce mai !!! Odio AS @The_Martian
Josh il

20

Seguire i passaggi lo renderà 10 volte più veloce e ridurrà il tempo di costruzione del 90%

Innanzitutto crea un file chiamato gradle.properties nella seguente directory:

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

Aggiungi questa riga al file:

org.gradle.daemon=true

org.gradle.parallel=true

4
Puoi impostarlo direttamente da gradle.properties situato nel progetto studio.
Biswajit Karmakar,

3
Sì, abilita anche questa opzione org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370

2
Impostare MaxPermSize = 1024m
Biswajit Karmakar il

Perché quelle proprietà non sono predefinite ?? Ci sono degli aspetti negativi?
oli

Questa opzione deve essere utilizzata solo con progetti disaccoppiati. Maggiori dettagli, visita gradle.org/docs/current/userguide/…
javad

17

L'abilitazione delle funzionalità di Java 8 ha causato un build lento e mortale

Gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Dopo aver eliminato le righe sopra, si crea in pochi secondi.

C'è un problema La compilazione con Jack richiede molto tempo

Risposta del responsabile di progetto

Siamo consapevoli che i tempi di costruzione sono un problema con Jack in questo momento. Abbiamo miglioramenti nel plug-in Gradle 2.4 che dovrebbe essere un miglioramento significativo per build incrementali.

A partire da ora, l'ultima versione di Gradle che posso trovare è la 2.3.0-beta4


4
Si, sono d'accordo. Per abilitare java 8 in Android Studio devi usare Jack e in questo modo i miei tempi di costruzione volano sulla luna da 1-2 minuti a 16 minuti ... che cosa ... È inutilizzabile in questo momento. Come sempre ottimo lavoro Google
Karol Żygłowicz,


7

La soluzione @AndroidDev ha funzionato per me. Avevo incluso l'intera libreria in gradi.

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

Cambiare per risolvere il problema. Da 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


4

Controlla la tua connessione Internet . Se la velocità di Internet è molto lenta, anche la costruzione del gradle richiederà molto tempo. Controllo cambiando la mia connessione internet wifi con un'altra buona velocità di connessione. Ora il tempo di costruzione è normale. Prova questo prima di passare ad altre soluzioni. qualcuno prenderà la decisione sbagliata di reinstallare o modificare le impostazioni. Spero che sarà di aiuto. Grazie e saluti.


Assicurati di consentire Android Studio su Firewall. Stavo aspettando da quasi 15 minuti il ​​gradle su una nuova installazione quando improvvisamente il popup della finestra del Firewall mi ha chiesto di consentirlo. Tuttavia
avrebbe

2

1) Il mio tempo di compilazione è aumentato notevolmente dopo aver aggiunto alcune nuove dipendenze della libreria al mio file gradle, cosa che è risultato che ho bisogno di usare Multidex dopo. E quando ho impostato correttamente Multidex, i miei tempi di costruzione sono aumentati di 2-3 minuti. Quindi, se desideri tempi di costruzione più rapidi, evita di utilizzare multidex e, per quanto possibile, riduci il numero di dipendenze delle librerie.

2) Inoltre puoi provare ad abilitare il "lavoro offline" in Android Studio, come suggerito qui, ha senso. Questo non recupererà le librerie ogni volta che fai una build. Forse una connessione lenta o l'utilizzo di proxy / vpn con "lavoro offline" disabilitato possono portare a tempi di costruzione lenti.

3) servizi google - come menzionato qui, non utilizzare l'intero pacchetto, utilizzare solo le parti necessarie di esso.


1

Nella versione beta di Android Studio 2.0, hanno implementato una funzione chiamata Instant Run . Riduce i tempi di costruzione di un fattore importante. Il concetto di base è che Android Studio inserisce solo le piccole modifiche apportate in un'app già in esecuzione.

Classifica le modifiche che apportiamo nel nostro codice in tre parti: hot swap, warm swap e cold swap, in base a quanto carico porterebbe la modifica sulla build. Dopodiché, scambia semplicemente il codice nell'app già in esecuzione e potremmo vedere le modifiche in esecuzione pochi secondi. Vedi il loro documento per ulteriori informazioni.

Qui puoi scaricare l'anteprima di Android Studio 2.0.

PS: ci sono alcuni problemi con questa funzione. L'hanno elencato nei documenti. Dai un'occhiata prima dell'installazione.


1
  1. Vai su File-> Impostazioni -> Gradle -> Impostalo in modalità offline e controlla

1

Stavo affrontando lo stesso problema da molto tempo ma l'ho risolto regolando le impostazioni in gradi.

Passaggio 1: nell'app Modulo aggiungere la dipendenza in BuildScript

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

Passaggio 2: aggiungi dexOption e specifica il seguente heapSize

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

Passaggio 3: aggiungi ProductFlavors

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

    }
}

Questo dovrebbe ridurre i tempi di costruzione.


0

Se stai usando Windows 8 ...

Le soluzioni DroidArc e AndroidDev sono state utili, ma non esaustive. Il mio problema era legato al mio sistema operativo Windows 8 e al suo utilizzo del disco al 100%.

Soprattutto il servizio di ricerca di Windows, è stato il più costoso. Disabilitalo con: cmd (Admin)> net.exe stop "Ricerca di Windows"

Ho seguito le indicazioni in questo link e ho risolto il problema per 4 veri consigli per correggere l'utilizzo del disco al 100% e migliorare le prestazioni di Windows

Spero che questo ti aiuti.


0

Ho avuto lo stesso problema in kotlin. L'aggiornamento del runtime di kotlin obsoleto lo ha risolto per me


0

Ho avuto problemi come questo soprattutto durante il debug attivo tramite il mio telefono; a volte ci sono voluti 27 minuti. Ho fatto le seguenti cose e ho preso nota della spiegazione sotto ciascuna - uno potrebbe funzionare per te:

  1. Modificato il mio file gradle.properties (in Script Gradle se hai la visualizzazione del file di progetto nell'opzione Android O nella cartella del progetto). Ho aggiunto questo perché il mio computer ha un po 'di memoria da riserva: alla fine è possibile assegnare valori diversi a seconda delle specifiche del computer e dei requisiti minimi di 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. Questo non ha risolto completamente il mio problema nel mio caso. Quindi ho anche fatto come altri avevano suggerito prima di rendere offline il mio processo di compilazione:

File -> Impostazioni / Preferenze -> Build, Execution, Deployment -> Gradle

Impostazioni globali del grado (in basso)

Selezionare la casella di controllo denominata: Lavoro offline.

  1. Ciò ha ridotto sostanzialmente i tempi ma era irregolare; a volte ci voleva più tempo. Pertanto ho apportato alcune modifiche su Instant Run:

File -> Impostazioni / Preferenze -> Build, Execution, Deployment -> Instant Run

Selezionato: abilita la corsa istantanea al codice hot swap ...

Controllato: riavvia l'attività sulle modifiche al codice ...

  1. La mossa sopra era anche irregolare e quindi ho cercato di scoprire se il problema potrebbe essere i processi / la memoria che sono stati eseguiti direttamente sul mio telefono e computer. Qui ho liberato un po 'di spazio di memoria nel telefono e nello spazio di archiviazione (che era utilizzato al 98% - fino al 70%) e anche in Task Manager (Windows), ho aumentato la priorità di Android Studio e Java.exe su Alta. Fai questo passo con cautela; dipende dalla memoria del tuo computer.

  2. Dopo tutto questo il mio tempo di creazione durante il debug attivamente sul mio telefono a volte è sceso a 1 ~ 2 minuti ma a volte è aumentato. Ho deciso di fare un hack che mi ha sorpreso portandolo al secondo posto, ma lo stesso progetto che mi ha dato 22-27 minuti è stato 12 secondi !:

Collegare il telefono per il debug, quindi fare clic su Esegui

Dopo l'avvio, scollegare il telefono: la compilazione dovrebbe continuare più velocemente e generare un errore alla fine che indica questo: "app" della sessione: errore durante l'installazione degli APK

Riconnetti il ​​telefono e fai di nuovo clic su ESEGUI ...

IN ALTERNATIVA

Se lo script / funzione / metodo di cui sto eseguendo il debug è puramente JAVA, non JAVA-android, ad es. Testare un'API con JSONArrays / JSONObjects, collaudo le mie funzioni / metodi java su Netbeans che possono compilare un singolo file e mostrare l'output più velocemente, quindi rendere modifiche necessarie sui miei file Android Studio. Questo mi fa anche risparmiare un sacco di tempo.

MODIFICARE

Ho provato a creare un nuovo progetto Android nella memoria locale e ho copiato tutti i miei file dal progetto precedente nel nuovo progetto: java, res, manifest, gradle app e gradle project (con la più recente dipendenza classpath gradle). E ora posso costruire sul mio telefono in meno di 15 secondi.


0

In build.gradle, se hai minifyEnabled per il debug, rimuovilo. L'ho avuto nel mio progetto e ci sono voluti ~ 2-3 minuti per la costruzione. Dopo aver esaminato l'avanzamento della costruzione, l'ho trovato colpevole, quindi eliminando la riga commentata di seguito, il mio problema è stato risolto.

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


0

Ho avuto lo stesso problema, anche la costruzione dei gradi ha funzionato per 8 ore ed ero preoccupato. Ma più tardi ho cambiato la versione compilata di sdk e la versione minima di sdk nel file build.gradle in questo modo.

Più vecchio:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

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

Nuovo (aggiornato):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }

-2

Ho avuto un problema simile sul mio computer. Windows Defender stava bloccando alcune parti di Gradle Building. L'ho disabilitato, dopo ha funzionato bene.


-43

Prova a riavviare il computer e a eseguire nuovamente Android Studio. Ha funzionato per me quando ho provato a costruire un progetto Cordova / Phonegap con una base di codice di destinazione Android.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.