Das Erstellen von Android Studio Gradle dauert zu lange

225

Früher wurde mein Android Studio- Projekt schneller erstellt, jetzt dauert das Erstellen jedoch lange. Irgendwelche Ideen, was die Verzögerungen verursachen könnte? Ich habe https://stackoverflow.com/a/27171878/391401 ausprobiert, aber keine Auswirkung. Ich habe kein Antivirenprogramm, das die Builds unterbrechen könnte. Meine App ist auch nicht so groß (ca. 5 MB ) und wurde innerhalb weniger Sekunden erstellt, ist sich aber nicht sicher, was sich geändert hat.

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
quelle
1
Was verwenden Sie, Ihr Android-Handy oder einen Emulator, um Ihre Anwendung auszuführen?
Ram Mansawala
Laufen auf dem Gerät
Harish
3
nicht, warum Google von Eclipse zu Android Studio
gewechselt
38
Als Android Studio neu war, wiesen viele auf StackOverflow Beschwerden zurück, da es sich nur um eine Beta-Version handelte. Es ist jedoch einige Jahre her, dass es "nur eine Beta" war und es immer noch träge ist und das auf 8 Kernen, 16 GB RAM und einer SSD-Festplatte. Die alte Eclipse, die auf diesem Computer eingerichtet wurde, ist blitzschnell.
Andrew S
3
Lesen Sie dies: pissedoff-techie.blogspot.in/2016/01/…
Utsav Gupta

Antworten:

452

Gehen Sie in Android Studio zu Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Build-Tools -> Gradle

(wenn auf einem Mac) Android Studio -> Einstellungen ... -> Erstellen, Ausführen, Bereitstellen -> Erstellen von Tools -> Gradle

Überprüfen Sie die 'Offline-Arbeit' unter 'Global Gradle-Einstellungen'

Dadurch wird die Gradle-Bauzeit um 90% reduziert.

Überprüfen Sie dies, um die Erstellungszeit zu verkürzen

Wenn Sie gerade eine neue Abhängigkeit in Ihrem Gradle hinzugefügt haben, müssen Sie die Offline-Arbeit deaktivieren, oder Gradle kann die Abhängigkeiten nicht auflösen. Nach der vollständigen Auflösung können Sie die Offline-Arbeit auf einen schnelleren Build überprüfen

Biswajit Karmakar
quelle
11
Hat super funktioniert. Von 12 Minuten bis 5 Sekunden
Ramesh
18
Wird diese Konfiguration nicht aufhören, neue Bibliotheken abzurufen, wenn wir sie zu build.gradle hinzufügen?
Dany Y
47
Wenn Sie eine neue Bibliothek hinzufügen, müssen Sie sie nur einmal online stellen. Dies wird per Gradle Build benachrichtigt, damit das Projekt
Uhr
15
Bedeutet dies, dass das Problem immer die Internetgeschwindigkeit anstelle der Prozessorgeschwindigkeit war?
1
Woah! Ging von über 15 Minuten bis 1 Minute: O
Kardinal - Reinstate Monica
150

Wenn Sie Google Play-Dienste verwenden, stellen Sie sicher, dass Sie dies nicht in Ihrem Gradle-Erstellungsskript verwenden:

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

Verwenden Sie nur die Google-APIs, die Ihre App tatsächlich verwendet. Wenn Sie nur Google Maps verwenden, verwenden Sie Folgendes:

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

Als ich das tat, ging meine Kompilierungszeit von über 2 Minuten auf ungefähr 25 Sekunden. Eine Liste der Google-APIs, gegen die Sie selektiv kompilieren können, finden Sie unter:

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

AndroidDev
quelle
12
Sie verdienen mehr als 100 Upvotes. Jede andere Quelle schlägt das Hinzufügen org.gradle.parallel=trueund die Befehlszeile vor ... aber keine bietet ein einfaches und direktes Verständnis dessen, was wirklich vor sich geht. Nach Ihrem Rat stieg meine Bauzeit von 1 Minute und 5 Sekunden auf 3,427 Sekunden. Genial!!
Sauron
Vielen Dank, das war auch mein Hauptproblem. Jetzt funktioniert alles super.
Alnaji
1
Funktioniert super. Verwenden Sie diesen Link, um den Namen Ihrer Play Services-Bibliothek zu finden: developer.google.com/android/guides/…
PC.
Du hast eine Zecke verdient ... Du hast mein Problem gelöst. Das Problem ist auf Google Play Services ... Danke :)
Karue Benson Karue
Dies hat nicht nur bei den langen Build-Problemen geholfen, sondern ich kann jetzt auch direkt auf dem Android-Gerät bereitstellen, ohne beim Debuggen Proguard zu verwenden (zuvor wurde ein Fehler bezüglich des Methodenlimits von 65 KB angezeigt). Vielen Dank!
Magritte
52

Fand einen einfachen und besten Weg, um Gradle zu bauen

Gehe zu deiner App >> öffne deine gradle.properties und ändere ein paar Zeilen davon [entferne # ]

Andernfalls können Sie auch mein unten stehendes Snippet kopieren und einfügen

    # 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

es hat früher bei mir funktioniert, es dauert fast 2-3 Minuten, jetzt dauert es nur noch 5-6 Sekunden

Im obigen Szenario hat mein Mac 8 GB RAM, also habe ich 4 GB für Gradle zugewiesen

Android ist alles für mich
quelle
Dies reduzierte meine Bauzeit von mehr als 30 Minuten auf 24 Minuten ... Gibt es eine Möglichkeit, sie weiter zu reduzieren ...?
Programmierung Pirate
34

Den Grund gefunden !! Wenn Android Studio über eine Proxy-Server-Einstellung verfügt und den Server nicht erreichen kann, dauert die Erstellung sehr lange. Möglicherweise wird versucht, den Proxy-Server zu erreichen, und es wird auf eine Zeitüberschreitung gewartet. Wenn ich die Proxy-Server-Einstellung entfernt habe, funktioniert sie einwandfrei.

Proxy entfernen: File > Settings > Appearance & Behavior > System settings > HTTP Proxy

Harish
quelle
3
Wie entferne ich den Proxyserver?
Joolah
2
Unter Windows-Datei> Einstellungen> Aussehen und Verhalten> Systemeinstellungen> HTTP-Proxy
Harish
2
Mein Problem war auch im Proxy, aber darin, dass ich auch HTTPS-Proxy in Gradle-Eigenschaften hinzufügen musste. HTTP - Proxy nicht genug: 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 ist kompletter Witz und bs. Ich bin nur müde von diesem Unsinn.
The_Martian
9
Genau!!! Ich habe unheilige Schmerzen, wenn ich ein großes Projekt von Eclipse migriere, und jetzt, da die Fehler behoben sind, wird das Bauen mit AS nie beendet !!! Ich hasse AS @The_Martian
Josh
20

Das Befolgen der Schritte macht es 10-mal schneller und reduziert die Bauzeit um 90%

Erstellen Sie zunächst eine Datei mit dem Namen gradle.properties im folgenden Verzeichnis:

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

Fügen Sie diese Zeile zur Datei hinzu:

org.gradle.daemon=true

org.gradle.parallel=true
user779370
quelle
4
Sie können es direkt in gradle.properties unter Studio-Projekt einstellen.
Biswajit Karmakar
3
Ja, aktivieren Sie auch diese Option org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370
2
Setze MaxPermSize = 1024m
Biswajit Karmakar
Warum sind diese Eigenschaften nicht vordefiniert? Gibt es Nachteile?
Oli
Diese Option sollte nur bei entkoppelten Projekten verwendet werden. Weitere Details finden Sie unter gradle.org/docs/current/userguide/…
javad
17

Das Aktivieren von Java 8-Funktionen verursachte einen tödlich langsamen Build

gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Nach dem Löschen der obigen Zeilen wird es in Sekunden erstellt.

Es gibt ein Problem Das Kompilieren mit Jack dauert sehr lange

Antwort des Projektmanagers

Wir sind uns bewusst, dass die Bauzeiten derzeit ein Problem für Jack sind. Wir haben Verbesserungen im 2.4 Gradle-Plugin, die eine signifikante Verbesserung für inkrementelle Builds darstellen sollten.

Ab sofort ist die neueste Gradle-Version, die ich finden kann, 2.3.0-beta4

tchelidze
quelle
4
Ja, ich stimme zu. Um Java 8 in Android Studio zu aktivieren, müssen Sie Jack verwenden. Auf diese Weise fliegen meine Build-Zeiten von 1-2 Minuten Builds bis 16 Minuten zum Mond ... was zum ... Es ist momentan unbrauchbar. Wie immer tolle Arbeit Google
Karol Żygłowicz
16

Empfohlene Lektüre: Wie ich 5 Stunden pro Woche bei Gradle-Builds spare !

Nach diesem ausgezeichneten Beitrag sollten Sie versuchen, Folgendes zu optimieren:

  • Gradle Daemon
  • Parallele Projektausführung
  • Konfigurieren Sie Projekte nach Bedarf
  • Module sind teuer ...
Oded Regev
quelle
7

@ AndroidDev-Lösung hat bei mir funktioniert. Ich hatte die ganze Bibliothek in gradle aufgenommen.

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

Ändern, um das Problem zu lösen. Von 4 min bis 1 min.

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

Danke

KlevisGjN
quelle
4

Überprüfen Sie Ihre Internetverbindung . Wenn die Internetgeschwindigkeit sehr langsam ist, dauert die Erstellung von Gradle Build ebenfalls lange. Ich überprüfe, indem ich meine WLAN-Internetverbindung durch eine andere Verbindung mit guter Geschwindigkeit ändere. Jetzt ist die Bauzeit normal. Bitte versuchen Sie dies, bevor Sie zu anderen Lösungen gehen. Jemand wird eine falsche Entscheidung treffen, um Einstellungen neu zu installieren oder zu ändern. Ich hoffe es wird helfen. Danke und Grüße.

Karthikeyan Dheshnamoorthy
quelle
Stellen Sie sicher, dass Android Studio in der Firewall zugelassen ist. Ich habe fast 15 Minuten auf den Gradle bei einer Neuinstallation gewartet, als plötzlich das Firewall-Fenster-Popup mich aufforderte, es zuzulassen. Könnte aber früher gewesen sein
Mohd.Zafranudin
2

1) Meine Erstellungszeit hat sich stark erhöht, nachdem ich meiner Gradle-Datei einige neue Bibliotheksabhängigkeiten hinzugefügt habe. Es stellte sich heraus, dass ich danach Multidex verwenden muss. Und wenn ich Multidex richtig eingerichtet habe, sind meine Build-Zeiten auf 2-3 Minuten gestiegen. Wenn Sie also schnellere Erstellungszeiten wünschen, vermeiden Sie die Verwendung von Multidex und reduzieren Sie die Anzahl der Bibliotheksabhängigkeiten so weit wie möglich.

2) Sie können auch versuchen, "Offline-Arbeit" in Android Studio zu aktivieren, wie hier vorgeschlagen, das macht Sinn. Dadurch werden Bibliotheken nicht jedes Mal neu abgerufen, wenn Sie einen Build erstellen. Möglicherweise kann eine langsame Verbindung oder Proxy- / VPN-Nutzung mit deaktivierter "Offline-Arbeit" zu langsamen Erstellungszeiten führen.

3) Google Services - Wie hier erwähnt, verwenden Sie nicht das gesamte Bundle, sondern nur die benötigten Teile.

lxknvlk
quelle
1

In der Beta-Version von Android Studio 2.0 haben sie eine Funktion namens Instant Run eingeführt . Es reduziert die Bauzeit um einen großen Faktor. Das Kernkonzept ist, dass Android Studio nur die kleinen Änderungen in eine bereits laufende App überträgt.

Es klassifiziert die Änderungen, die wir in unserem Code vornehmen, in drei Teile: Hot-Swap, Warm-Swap und Cold-Swap, basierend darauf, wie viel Last die Änderung auf den Build ausüben würde. Danach tauscht es einfach den Code in der bereits laufenden App aus und wir können sehen, dass die Änderungen einige Sekunden lang ausgeführt werden. Weitere Informationen finden Sie in ihrem Dokument .

Hier können Sie die Vorschau von Android Studio 2.0 herunterladen.

PS: Es gibt einige Probleme mit dieser Funktion. Sie haben es in den Dokumenten aufgelistet. Überprüfen Sie es vor der Installation.

Akeshwar Jha
quelle
1
  1. Gehen Sie zu Datei-> Einstellung -> Gradle -> Stellen Sie den Offline-Modus ein und überprüfen Sie
vikas khot
quelle
1

Ich hatte lange Zeit das gleiche Problem, aber ich habe es gelöst, indem ich die Einstellungen in Gradle angepasst habe.

Schritt 1: Fügen Sie in der Modul-App die Abhängigkeit in BuildScript hinzu

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

Schritt 2: Fügen Sie dexOption hinzu und geben Sie die folgende heapSize an

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

Schritt 3: Fügen Sie productFlavors hinzu

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

    }
}

Dies sollte Ihre Erstellungszeit verkürzen.

Binesh Kumar
quelle
0

Wenn Sie Windows 8 verwenden ...

DroidArc- und AndroidDev-Lösungen waren nützlich, aber nicht ausreichend. Mein Problem hing mit meinem Windows 8-Betriebssystem und seiner 100% igen Festplattennutzung zusammen.

Besonders der Windows-Suchdienst war am aufwendigsten. Deaktivieren Sie es mit: cmd (Admin)> net.exe stop "Windows-Suche"

Ich habe die Anweisungen in diesem Link befolgt und das Problem für echte 4 Tipps zur Behebung der 100% igen Festplattennutzung und zur Verbesserung der Windows-Leistung gelöst

Hoffe das hilft.

Dianakarenmen
quelle
0

Ich hatte das gleiche Problem in Kotlin. Das Aktualisieren der veralteten Kotlin-Laufzeit hat es für mich gelöst

Rami Amro Ahmed
quelle
0

Ich hatte solche Probleme, insbesondere beim aktiven Debuggen über mein Telefon. manchmal dauerte es 27 Minuten. Ich habe die folgenden Dinge getan und die Erklärung unter jedem zur Kenntnis genommen - eine kann für Sie arbeiten:

  1. Meine gradle.properties-Datei wurde geändert (unter Gradle-Skripten, wenn Sie die Projektdateiansicht unter der Android-Option ODER in Ihrem Projektordner haben). Ich habe dies hinzugefügt, weil mein Computer über genügend Speicherplatz verfügt. Sie können am Ende je nach Computerspezifikation und Mindestanforderungen für Android Studio unterschiedliche Werte zuweisen (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. Dies hat mein Problem in meinem Fall nicht vollständig gelöst. Daher habe ich auch getan, was andere zuvor vorgeschlagen hatten - um meinen Build-Prozess offline zu schalten:

Datei -> Einstellungen / Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Gradle

Globale Gradle-Einstellungen (unten)

Aktivieren Sie das Kontrollkästchen: Offline-Arbeit.

  1. Dies reduzierte die Zeit erheblich, war aber unberechenbar; dauerte manchmal länger. Daher habe ich beim Sofortlauf einige Änderungen vorgenommen:

Datei -> Einstellungen / Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Sofortige Ausführung

Aktiviert: Sofortige Ausführung für Hot-Swap-Code aktivieren ...

Aktiviert: Aktivität bei Codeänderungen neu starten ...

  1. Der obige Schritt war ebenfalls unberechenbar und daher wollte ich herausfinden, ob das Problem möglicherweise die Prozesse / der Speicher sind, die direkt auf meinem Telefon und meinem Computer ausgeführt wurden. Hier habe ich ein wenig Speicherplatz in meinem Telefon und Speicher freigegeben (der zu 98% ausgelastet war - bis zu 70%) und auch im Task-Manager (Windows) die Priorität von Android Studio und Java.exe auf Hoch erhöht. Machen Sie diesen Schritt vorsichtig; hängt vom Speicher Ihres Computers ab.

  2. Nach all dem ging meine Erstellungszeit beim aktiven Debuggen auf meinem Telefon manchmal auf 1 bis 2 Minuten zurück, stieg aber manchmal an. Ich entschied mich für einen Hack, der mich überraschte, indem ich ihn auf Sekunden genau auf das gleiche Projekt reduzierte, das mir 22 - 27 Minuten gab, war 12 Sekunden!:

Schließen Sie das Telefon zum Debuggen an und klicken Sie auf RUN

Ziehen Sie nach dem Start den Stecker aus der Steckdose - der Build sollte schneller fortgesetzt werden und am Ende einen Fehler auslösen, der Folgendes anzeigt: Sitzung 'App': Fehler beim Installieren der APKs

Schließen Sie das Telefon wieder an und klicken Sie erneut auf RUN ...

ALTERNATIVE

Wenn das Skript / die Funktion / Methode, die ich debugge, rein JAVA ist, nicht JAVA-android, z. B. das Testen einer API mit JSONArrays / JSONObjects, teste ich meine Java-Funktionen / Methoden auf Netbeans, die eine einzelne Datei kompilieren und die Ausgabe schneller anzeigen können als make notwendige Änderungen an meinen Android Studio-Dateien. Das spart mir auch viel Zeit.

BEARBEITEN

Ich habe versucht, ein neues Android-Projekt im lokalen Speicher zu erstellen, und alle meine Dateien aus dem vorherigen Projekt in das neue kopiert - Java, Res, Manifest, Gradle-App und Gradle-Projekt (mit der neuesten Abhängigkeit von Gradle-Klassenpfaden). Und jetzt kann ich in weniger als 15 Sekunden auf mein Handy bauen.

Firsake
quelle
0

Wenn Sie in Ihrem build.gradle minifyEnabled für das Debuggen haben, entfernen Sie es. Ich hatte es in meinem Projekt und es dauerte ~ 2-3 Minuten, um es zu bauen. Nachdem ich mir den Build-Fortschritt angesehen hatte, stellte ich fest, dass dies ein Schuldiger war. Durch Löschen der kommentierten Zeile unten wurde mein Problem behoben.

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

Ich hatte das gleiche Problem, sogar der Gradle-Build lief 8 Stunden und ich war besorgt. Aber später habe ich die Compil-SDK-Version und die minimale SDK-Version in der build.gradle- Datei wie folgt geändert .

Älter:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

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

Neu (aktualisiert):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

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

Ich hatte ein ähnliches Problem auf meinem Computer. Windows Defender blockierte einen Teil von Gradle Building. Ich habe es deaktiviert und danach gut funktioniert.

Rickdroio
quelle
-43

Starten Sie Ihren Computer neu und führen Sie Android Studio erneut aus. Arbeitete für mich beim Versuch, ein Cordova / Phonegap-Projekt mit einer Android-Zielcodebasis zu erstellen.

racl101
quelle