La création d'Android Studio prend trop de temps

225

Mon projet Android Studio générait plus rapidement, mais maintenant, il prend beaucoup de temps à construire. Des idées sur ce qui pourrait être à l'origine des retards? J'ai essayé https://stackoverflow.com/a/27171878/391401 mais aucun effet. Je n'ai aucun antivirus en cours d'exécution qui pourrait interrompre les versions. Mon application n'est pas aussi grande (environ 5 Mo ) et elle se construisait en quelques secondes, mais je ne sais pas ce qui a changé.

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
la source
1
Qu'utilisez-vous, votre téléphone Android ou n'importe quel émulateur pour exécuter votre application?
Ram Mansawala
Fonctionnant sur l'appareil
Harish
3
ne sais pas pourquoi google est passé de l'éclipse au studio android .... le studio android craint
kapil
38
Lorsque le studio Android était nouveau, de nombreux utilisateurs de StackOverflow ont rejeté les plaintes à ce sujet, car il s'agissait `` uniquement d'une version bêta ''. Cependant, cela fait maintenant quelques années que ce n'était `` qu'une version bêta '' et elle est toujours lente et c'est sur 8 cœurs, 16 Go de RAM et un disque SSD. L'ancien Eclipse installé sur cette machine est aussi rapide qu'un clin d'œil.
Andrew S
3
Lisez ceci: pissedoff-techie.blogspot.in/2016/01/…
Utsav Gupta

Réponses:

453

Dans Android Studio, allez dans Fichier -> Paramètres -> Build, Execution, Deployment -> Build Tools -> Gradle

(si sur mac) Android Studio -> préférences ... -> Build, Execution, Deployment -> Build Tools -> Gradle

Cochez la case «Travail hors ligne» sous «Paramètres Global Gradle»

Cela réduira de 90% le temps de construction gradle.

vérifiez cela pour réduire le temps de construction

si vous venez d'ajouter une nouvelle dépendance dans votre gradle, vous devrez décocher le travail hors ligne ou gradle ne pourra pas résoudre les dépendances. Après la résolution complète, vous pouvez vérifier le travail hors ligne pour une construction plus rapide

Biswajit Karmakar
la source
11
Fonctionne très bien. De 12 minutes à 5 secondes
Ramesh
18
cette configuration n'arrêtera-t-elle pas de récupérer de nouvelles bibliothèques lorsque nous les ajouterons à build.gradle?
Dany Y
48
lorsque vous ajoutez une nouvelle bibliothèque, vous devez la mettre en ligne une seule fois, ce qui sera notifié par gradle build pour rendre le projet exécutable @DanyY
Biswajit Karmakar
15
Cela signifie-t-il que tout le temps le problème était la vitesse Internet au lieu de la vitesse du processeur?
1
Woah! Passé de plus de 15 minutes à 1 minute: O
Cardinal - Rétablir Monica le
150

Si vous utilisez les services Google Play, assurez-vous que vous ne l'utilisez pas dans votre script de génération Gradle:

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

Utilisez uniquement les API Google que votre application utilise réellement. Si tout ce que vous utilisez est Google Maps, vous utiliseriez ceci:

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

Lorsque j'ai fait cela, mon temps de compilation est passé de plus de 2 minutes à environ 25 secondes. Pour une liste des API Google que vous pouvez compiler de manière sélective, voir:

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

AndroidDev
la source
12
Vous méritez plus de 100 votes positifs. Toutes les autres sources suggèrent d'ajouter org.gradle.parallel=trueet de relier la ligne de commande ... mais aucune ne fournit une compréhension simple et directe de ce qui se passe réellement. En utilisant vos conseils, mon temps de construction est passé de 1 min 5 secondes à 3,427 secondes. Impressionnant!!
Sauron
Merci beaucoup, c'était aussi mon principal problème. Maintenant, tout fonctionne très bien.
alnaji
1
Fonctionne très bien. Utilisez ce lien pour trouver le nom de votre bibliothèque de services de jeux: developers.google.com/android/guides/…
PC.
Vous méritiez une tique ... Vous avez résolu mon problème. Le problème est sur les services google play ... Merci :)
Karue Benson Karue
Non seulement cela a aidé avec les longs problèmes de construction, mais je peux maintenant également déployer directement sur l'appareil Android sans utiliser Proguard lors du débogage (auparavant, j'obtenais une erreur concernant la limite de la méthode 65K). Merci!
magritte
52

Trouvé un moyen facile et meilleur pour construire gradle

allez dans votre application >> ouvrez votre gradle.properties et changez-en quelques lignes [supprimer # ]

sinon vous pouvez aussi copier mon extrait ci-dessous

    # 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

cela a fonctionné pour moi plus tôt, cela prend presque 2-3 minutes maintenant, cela ne prend que 5-6 secondes

dans le scénario ci-dessus, ma machine mac a 8 Go de RAM, donc j'ai attribué 4 Go pour Gradle

Android est tout pour moi
la source
Cela a réduit mon temps de construction de 30+ minutes à 24 minutes ... Y a-t-il un moyen de réduire davantage ...?
Programmation Pirate du
34

Trouvé la raison !! Si Android Studio a un paramètre de serveur proxy et ne peut pas atteindre le serveur, la construction prend beaucoup de temps, probablement son essai pour atteindre le serveur proxy et l'attente d'un délai d'attente. Lorsque j'ai supprimé le serveur proxy, il fonctionne correctement.

Suppression du proxy: File > Settings > Appearance & Behavior > System settings > HTTP Proxy

Harish
la source
3
Comment supprimer le serveur proxy?
Joolah
2
Sous Windows Fichier> Paramètres> Apparence et comportement> Paramètres système> Proxy HTTP
Harish
2
Mon problème était également dans le proxy, mais en cela, je devais également ajouter un proxy HTTPS dans les propriétés de gradle. Le proxy HTTP n'était pas suffisant: 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 est une blague complète et bs. Je suis juste fatigué de ce non-sens.
The_Martian
9
Je suis d'accord!!! Je souffre de douleurs impies pour migrer un gros projet depuis Eclipse, et maintenant que les erreurs sont corrigées, la construction avec AS ne se termine jamais !!! Je déteste AS @The_Martian
Josh
20

Suivre les étapes le rendra 10 fois plus rapide et réduira le temps de construction de 90%

Créez d'abord un fichier nommé gradle.properties dans le répertoire suivant:

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

Ajoutez cette ligne au fichier:

org.gradle.daemon=true

org.gradle.parallel=true
user779370
la source
4
Vous pouvez le définir directement à partir de gradle.properties situé sous projet studio.
Biswajit Karmakar
3
Oui, activez également cette option org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370
2
Définir MaxPermSize = 1024m
Biswajit Karmakar
Pourquoi ces propriétés ne sont-elles pas prédéfinies ?? Y a-t-il des inconvénients?
oli
Cette option ne doit être utilisée qu'avec des projets découplés. Plus de détails, visitez gradle.org/docs/current/userguide/…
javad
17

L'activation des fonctionnalités de Java 8 a provoqué une construction lente et mortelle

gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Après avoir supprimé les lignes ci-dessus, il se construit en quelques secondes.

Il y a un problème de compilation avec Jack prend très longtemps

Réponse du chef de projet

Nous sommes conscients que les temps de construction sont un problème avec Jack en ce moment. Nous avons des améliorations dans le plugin 2.4 Gradle qui devraient être une amélioration significative pour les builds incrémentiels.

À partir de maintenant, la dernière version de Gradle que je peux trouver est la 2.3.0-beta4

tchelidze
la source
4
Oui je suis d'accord. Pour activer java 8 dans le studio Android, vous devez utiliser Jack et ce faisant, mes temps de construction s'envolent vers la lune de 1-2 minutes à 16 minutes ... ce qui est .... Il est inutilisable en ce moment. Comme toujours un excellent travail Google
Karol Żygłowicz
7

La solution @AndroidDev a fonctionné pour moi. J'avais inclus la bibliothèque entière dans gradle.

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

Changer pour résoudre le problème. De 4 min à 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
la source
4

Vérifiez votre connexion Internet . Si la vitesse d'Internet est très lente, la construction gradle prendra également beaucoup de temps à construire. Je vérifie en changeant ma connexion Internet wifi avec une autre connexion à bonne vitesse. Maintenant, le temps de construction est normal. Veuillez essayer ceci avant de passer à d'autres solutions. quelqu'un prendra la mauvaise décision de réinstaller ou de modifier les paramètres. J'espère que cela aidera. Merci et salutations.

Karthikeyan Dheshnamoorthy
la source
Assurez-vous d'autoriser Android Studio sur le pare-feu. J'attendais depuis près de 15 minutes le gradle sur une nouvelle installation lorsque soudainement une fenêtre contextuelle de pare-feu me demandait de l'autoriser. Cela aurait pu être plus tôt
Mohd.Zafranudin
2

1) Mon temps de construction a considérablement augmenté après avoir ajouté de nouvelles dépendances de bibliothèque à mon fichier gradle, ce qui s'est avéré que je devais utiliser multidex après cela. Et lorsque j'ai configuré correctement multidex, mes temps de construction ont augmenté jusqu'à 2-3 minutes. Donc, si vous voulez des temps de construction plus rapides, évitez d'utiliser le multidex et, dans la mesure du possible, réduisez le nombre de dépendances de bibliothèque.

2) Vous pouvez également essayer d'activer le "travail hors ligne" dans Android Studio, comme suggéré ici, cela a du sens. Cela ne récupérera pas les bibliothèques chaque fois que vous effectuez une construction. Peut-être une connexion lente ou une utilisation proxy / vpn avec "travail hors ligne" désactivé peut conduire à des temps de construction lents.

3) Services Google - comme mentionné ici, n'utilisez pas l'ensemble du pack, utilisez uniquement les parties nécessaires.

lxknvlk
la source
1

Dans la version bêta d'Android studio 2.0, ils ont déployé une fonctionnalité appelée Instant Run . Cela réduit considérablement le temps de construction. Le concept de base est qu'Android Studio ne fait que pousser les petites modifications apportées dans une application déjà en cours d'exécution.

Il classe les modifications que nous apportons dans notre code en trois parties: échange à chaud, échange à chaud et échange à froid, en fonction de la charge que le changement imposerait à la génération. Après cela, il échange simplement le code dans l'application déjà en cours d'exécution et nous pouvons voir les modifications s'exécuter quelques secondes. Voir leur doc pour plus d'informations.

Ici, vous pouvez télécharger l'aperçu d'Android Studio 2.0.

PS: Il y a quelques problèmes avec cette fonctionnalité. Ils l'ont répertorié dans les documents. Vérifiez-le avant l'installation.

Akeshwar Jha
la source
1
  1. Allez dans Fichier-> Paramètres -> Gradle -> Réglez-le en mode hors ligne et vérifiez
vikas khot
la source
1

Je faisais face au même problème depuis longtemps mais je l'ai résolu en ajustant les paramètres en gradle.

Étape 1: dans l'application Module, ajoutez des dépendances dans BuildScript

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

Étape 2: ajoutez dexOption et donnez le heapSize suivant

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

Étape 3: ajouter le produit

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

    }
}

Cela devrait réduire votre temps de construction.

Binesh Kumar
la source
0

Si vous utilisez Windows 8 ...

Les solutions DroidArc et AndroidDev sont utiles, mais pas suffisantes. Mon problème était lié à mon système d'exploitation Windows 8 et à son utilisation à 100% du disque.

Le service Windows Search, en particulier, était le plus consommateur. Désactivez-le avec: cmd (Admin)> net.exe stop "Windows search"

J'ai suivi les instructions de ce lien et cela a résolu le problème pour de vrais 4 conseils pour corriger l'utilisation à 100% du disque et améliorer les performances de Windows

J'espère que cela t'aides.

dianakarenms
la source
0

J'ai eu le même problème en kotlin. La mise à jour du runtime obsolète de kotlin l'a résolu pour moi

Rami Amro Ahmed
la source
0

J'ai eu des problèmes comme celui-ci en particulier lors du débogage actif via mon téléphone; parfois cela prenait 27 minutes. J'ai fait les choses suivantes et je prends note de l'explication sous chacune - on peut travailler pour vous:

  1. Modification de mon fichier gradle.properties (sous scripts Gradle si vous avez la vue du fichier de projet sous l'option Android OU dans votre dossier de projet). J'ai ajouté cela parce que mon ordinateur a de la mémoire disponible - vous pouvez attribuer différentes valeurs à la fin en fonction des spécifications de votre ordinateur et des exigences minimales du studio Android (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. Cela n'a pas complètement résolu mon problème dans mon cas. Par conséquent, j'ai également fait ce que d'autres avaient suggéré auparavant - pour rendre mon processus de construction hors ligne:

Fichier -> Paramètres / Préférences -> Build, Execution, Deployment -> Gradle

Paramètres globaux de Gradle (en bas)

Cochez la case nommée: Travail hors ligne.

  1. Cela a réduit considérablement le temps, mais c'était irrégulier; parfois pris plus de temps. J'ai donc fait quelques changements sur Instant Run:

Fichier -> Paramètres / Préférences -> Build, Execution, Deployment -> Instant Run

Vérifié: Activer Instant Run pour le code de remplacement à chaud ...

Vérifié: redémarrer l'activité sur les changements de code ...

  1. Le mouvement ci-dessus était également erratique et j'ai donc cherché à savoir si le problème pouvait être les processus / mémoire qui s'exécutaient directement sur mon téléphone et mon ordinateur. Ici, j'ai libéré un peu d'espace mémoire dans mon téléphone et mon stockage (qui était utilisé à 98% - jusqu'à 70%) et également sur le gestionnaire de tâches (Windows), augmentant la priorité d'Android Studio et de Java.exe à High. Faites cette étape avec prudence; dépend de la mémoire de votre ordinateur.

  2. Après tout cela, mon temps de construction lors du débogage actif sur mon téléphone est parfois tombé à 1 ~ 2 minutes, mais parfois à pic. J'ai décidé de faire un hack qui m'a surpris en le réduisant au mieux en quelques secondes sur le même projet qui m'a donné 22 - 27 minutes était de 12 secondes!:

Connectez le téléphone pour le débogage, puis cliquez sur RUN

Après le démarrage, débranchez le téléphone - la construction devrait continuer plus rapidement et générer une erreur à la fin indiquant ceci: Session 'app': Erreur lors de l'installation des APK

Reconnectez le téléphone et cliquez à nouveau sur RUN ...

ALTERNATIVEMENT

Si le script / fonction / méthode que je débogue est purement JAVA, pas JAVA-android, par exemple, tester une API avec JSONArrays / JSONObjects, je teste mes fonctions / méthodes java sur Netbeans qui peuvent compiler un seul fichier et afficher la sortie plus rapidement puis faire modifications nécessaires sur mes fichiers Android Studio. Cela me fait également gagner beaucoup de temps.

ÉDITER

J'ai essayé de créer un nouveau projet Android dans le stockage local et j'ai copié tous mes fichiers du projet précédent dans le nouveau - java, res, manifest, application gradle et projet gradle (avec la dernière dépendance de chemin de classe gradle). Et maintenant, je peux construire sur mon téléphone en moins de 15 secondes.

Firsake
la source
0

Dans votre build.gradle, si vous avez minifyEnabled pour le débogage, supprimez-le. Je l'avais dans mon projet et cela a pris ~ 2-3 minutes à construire. Après avoir regardé la progression de la construction, j'ai trouvé cela comme coupable, donc en supprimant la ligne commentée ci-dessous, mon problème a été résolu.

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

J'ai eu le même problème, même la construction de gradle a duré 8 heures et j'étais inquiet. Mais plus tard, j'ai changé la version sdk de compilation et la version sdk minimale dans le fichier build.gradle comme ceci.

Plus âgée:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

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

Nouveau (mis à jour):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

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

J'ai eu un problème similaire sur mon ordinateur. Windows Defender bloquait une partie de Gradle Building. Je l'ai désactivé, j'ai bien fonctionné après ça.

rickdroio
la source
-43

Essayez de redémarrer votre ordinateur et d'exécuter à nouveau Android Studio. A fonctionné pour moi lorsque j'essayais de créer un projet Cordova / Phonegap avec une base de code cible Android.

racl101
la source