web-dev-qa-db-fra.com

Android Studio Gradle prend trop de temps à construire

Mon projet Android Studio me permettait de construire plus rapidement, mais maintenant, la construction prend beaucoup de temps. Des idées sur ce qui pourrait causer les retards? J'ai essayé https://stackoverflow.com/a/27171878/391401 mais pas d'effet. Je n'ai aucun antivirus en cours d'exécution qui pourrait interrompre les versions. Mon application n’est pas aussi grande en taille (environ 5 Mo ) et elle était construite en quelques secondes à peine, mais je ne savais pas ce qui avait 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  
202
Harish

Trouvé la raison !! Si Android Studio a un paramètre de serveur proxy et ne peut pas atteindre le serveur, sa construction prend beaucoup de temps. Il s'agit probablement d'essayer d'atteindre le serveur proxy et d'attendre 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

33
Harish

Dans Android Studio, sélectionnez Fichier -> Paramètres -> Construire, Exécution, Déploiement -> Outils de construction -> Graduer.

(si sur mac) Android Studio -> préférences ... -> Construction, exécution, déploiement -> Outils de construction -> Gradle

Cochez la case "Travail hors ligne" sous "Paramètres globaux"

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

check this to reduce build time

si vous venez d'ajouter une nouvelle dépendance dans votre classe, vous devrez décocher le travail hors connexion , sinon la classe 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.

415

Si vous utilisez les services Google Play, assurez-vous de ne pas utiliser ceci 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

Quand j'ai fait cela, mon temps de compilation est passé de plus de 2 minutes à environ 25 secondes. Pour obtenir une liste des API Google sur lesquels vous pouvez compiler sélectivement, voir:

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

144
AndroidDev

Trouvé un moyen facile et le meilleur pour construire le grade

accédez à votre application >> ouvrez votre fichier gradle.properties et modifiez-en quelques lignes [remove #]

sinon vous pouvez copier coller mon extrait ci-dessous ainsi

    # 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, il prend presque 2-3 minutes maintenant, il ne prend que 5-6 secondes

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

L'activation des fonctionnalités de Java 8 a entraîné une construction extrêmement lente

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 Compiler avec Jack prend très longtemps

Réponse du gestionnaire 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 2.3.0-beta4

17
tchelidze

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

Commencez par créer 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
16
user779370

Lecture recommandée: Comment je gagne 5h/semaine sur les versions Gradle !

Selon cet excellent article, vous devriez essayer d'optimiser les éléments suivants:

  • Gradle Daemon
  • Exécution de projet parallèle
  • Configurer des projets à la demande
  • Les modules sont chers ...
15
Oded Regev

La solution @AndroidDev a fonctionné pour moi. J'avais inclus toute la bibliothèque dans la liste.

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

7
KlevisGjN

Vérifiez votre connexion Internet. Si la vitesse de l'internet est très lente, la construction de gradles sera également longue. Je vérifie en changeant ma connexion internet wifi avec une autre connexion de bonne vitesse. Maintenant, le temps de construction est normal. S'il vous plaît essayez 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.

1) Mon temps de compilation a considérablement augmenté après l’ajout de nouvelles dépendances de bibliothèque à mon fichier Gradle, ce qui s’est avéré nécessaire pour utiliser multidex par la suite. Et quand j’ai configuré correctement multidex, mon temps de compilation a été porté à 2-3 minutes. Donc, si vous voulez des temps de construction plus rapides, évitez d'utiliser 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 connexion" dans Android Studio, comme suggéré ici, cela a du sens. Cela ne récupérera pas les bibliothèques chaque fois que vous ferez une compilation. Peut-être une connexion lente ou une utilisation de proxy/vpn avec le "travail hors connexion" désactivée peut-elle ralentir les temps de construction.

3) google services - comme mentionné ici, n’utilisez pas l’ensemble du paquet, n’utilisez que les parties nécessaires.

2
lxknvlk

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

Étape 1: Dans l'application Module, ajoutez une dépendance 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 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

    }
}

Cela devrait réduire votre temps de construction.

1
Binesh Kumar
  1. Allez dans Fichier-> Paramètres -> Gradient -> Réglez-le en mode hors connexion et vérifiez
1
vikas khot

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 transmet que les modifications mineures apportées à une application en cours d'exécution.

Il classe les modifications apportées 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 suffit simplement d’échanger le code dans l’application en cours d’exécution et de voir les modifications s’appliquer en quelques secondes. Voir leur doc pour plus d'informations.

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

PS: Il y a quelques problèmes avec cette fonctionnalité. Ils l'ont énuméré aux docs. Vérifiez-le avant l'installation.

1
Akeshwar Jha

Dans votre build.gradle, si vous avez minifyEnabled pour le débogage, supprimez-le. Je l'ai eu dans mon projet et il a fallu environ 2-3 minutes pour le construire. Après avoir examiné les progrès de la construction, j’ai trouvé cela coupable. 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'}
0
Mukesh

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 prends note de l'explication sous chacune d'elles - on peut travailler pour vous:

  1. J'ai modifié mon fichier gradle.properties (sous les scripts Gradle si la vue du fichier de projet est affichée sous l'option Android OR dans le dossier de votre projet). J'ai ajouté ceci parce que mon ordinateur a de la mémoire libre - 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 procédé comme d'autres l'avaient suggéré auparavant - pour rendre mon processus de génération hors ligne:

Fichier -> Paramètres/Préférences -> Construire, Exécuter, Déployer -> Graduer

Global Gradle Settings (en bas)

Cochez la case nommée: Travail hors ligne.

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

Fichier -> Paramètres/Préférences -> Construction, exécution, déploiement -> Exécution instantanée

Vérifié: Activer Instant Run to hot swap code ...

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

  1. Le mouvement ci-dessus était également erratique et par conséquent, j'ai cherché à savoir si le problème pouvait provenir des processus/de la mémoire 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 dans le stockage (qui était utilisé à 98% - jusqu’à 70%), ainsi que sur le gestionnaire de tâches (Windows), la priorité d’Android Studio et de Java.exe est élevée. 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 à un pic. J'ai décidé de faire un bidouillage qui m'a surpris en le réduisant au mieux en quelques secondes sur le même projet qui m'avait donné 22 à 27 minutes, était de 12 secondes !:

Connectez le téléphone pour le débogage, puis cliquez sur Exécuter.

Après le démarrage, débranchez le téléphone - la construction devrait continuer plus rapidement et indiquer une erreur à la fin indiquant ceci: "Application" de la session: Erreur lors de l'installation de l'APK

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

ALTERNATIVEMENT

Si le script/fonction/méthode en cours de débogage est purement Java, pas Java-Android par exemple. En testant une API avec JSONArrays/JSONObjects, je teste mes fonctions/méthodes Java sur Netbeans, qui peuvent compiler un fichier unique et afficher la sortie plus rapidement, puis apporter les modifications nécessaires à mes fichiers Android Studio. Cela me fait également gagner beaucoup de temps.

EDIT

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, Manifeste, Application Gradé et Projet Gradé (avec la dernière dépendance du chemin de classe Gradle). Et maintenant, je peux construire sur mon téléphone en moins de 15 secondes.

0
Firsake

J'ai eu le même problème à Kotlin. Mettre à jour le runtime obsolète de Kotlin l'a résolu pour moi

0
Rami Amr

Vous pouvez essayer les astuces de cet article Pourquoi la construction de votre Android Studio prend une éternité - Partie 2 L’une des astuces recommande entre autres "Activer le mode hors connexion".

0

Si vous utilisez Windows 8 ...

Les solutions DroidArc et AndroidDev sont utiles, mais pas assez complètes. 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 le problème a été résolu 4 conseils pour corriger l'utilisation à 100% du disque et améliorer les performances de Windows

J'espère que cela t'aides.

0
karenms