Android Studio gradle prend trop de temps à construire
MonAndroid Studio Projet utilisé pour construire plus rapidement, mais maintenant il faut beaucoup de temps pour construire. Des idées sur ce qui pourrait causer les retards? J'ai essayé https://stackoverflow.com/a/27171878/391401 {[5] } mais aucun effet. Je n'ai aucun antivirus en cours d'exécution qui pourrait interrompre les builds. Mon application n'est pas aussi grande (autour de 5MB) et elle se construisait en quelques secondes mais ne savait 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
17 réponses
Dans Android Studio aller à Fichier -> Paramètres -> Construire, L'Exécution, Le Déploiement -> Créer Des Outils -> Gradle
(si sur mac) Android Studio -> préférences... -> Construire, L'Exécution, Le Déploiement -> Créer Des Outils -> Gradle
Cochez la case "travail hors ligne "sous" Paramètres globaux de Gradle "
Cela réduira le temps de construction de gradle de 90%.
Si vous venez d'ajouter une nouvelle dépendance dans votre gradle vous devrez décocher la travailler hors connexion ou gradle ne sera pas en mesure de 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
Si vous utilisez les services Google Play, assurez-vous de ne pas l'utiliser dans votre script de génération Gradle:
compile 'com.google.android.gms:play-services:8.3.0'
N'utilisez que les API Google que votre application utilise réellement. Si tout ce que vous utilisez est Google Maps, vous utiliserez 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 une liste des API Google que vous pouvez compiler sélectivement, consultez:
Trouvé un moyen facile et le meilleur pour construire gradle
Accédez à votre application > > ouvrez votre gradle.propriétés et changer quelques lignes [supprimer #]
Sinon, vous pouvez également copier coller 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 assigné 4 Go pour gradle
Trouvé la raison!! Si Android Studio a un paramètre de serveur proxy et ne peut pas atteindre le serveur, il faut beaucoup de temps pour construire, probablement essayer d'atteindre le serveur proxy et attendre un délai d'attente. Lorsque j'ai supprimé le serveur proxy, il fonctionnait bien.
Suppression du proxy: File > Settings > Appearance & Behavior > System settings > HTTP Proxy
L'activation des fonctionnalités de Java 8 a causé une construction lente 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 la 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 devrait être une amélioration significative pour les constructions incrémentielles.
À partir de maintenant, la dernière version Gradle que je peux trouver est 2.3.0-beta4
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.propriétés 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
Lecture Recommandée: Comment je sauve 5h / semaine sur Gradle builds !
Selon cet excellent post, vous devriez essayer d'optimiser ce qui suit:
- Démon Gradle
- Exécution Parallèle Du Projet
- Configurer les projets à la demande
- les Modules sont chers...
@ AndroidDev solution a fonctionné pour moi. J'avais inclus toute la lib 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
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 j'ai besoin d'utiliser multidex après cela. Et quand j'ai configuré multidex correctement, mes temps de construction sont allés jusqu'à 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 ligne" dans android studio, comme suggéré ici, cela a du sens. Ce ne sera pas refetch bibliothèques chaque fois que vous faites une construction. Peut-être une connexion lente ou une utilisation de proxy / vpn avec un" travail hors ligne " désactivé peut entraîner des temps de construction lents.
3) services google - comme mentionné ici, n'utilisez pas le paquet entier, utilisez uniquement les parties nécessaires.
Vérifiez votre connexion Internet. Si la vitesse d'internet est très lente, la construction de 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 une mauvaise décision pour réinstaller ou modifier les paramètres. J'espère que ça aidera. Merci et salutations.
Dans la version bêta Android studio 2.0, ils ont lancé une fonctionnalité appelée Éphémère Exécuter. Cela réduit le temps de construction d'un facteur important. Le concept de base est, Android Studio ne pousse que les petites modifications apportées à 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 mettrait sur la construction. Après cela, il échange simplement le code dans l'application déjà en cours d'exécution et nous obtenez pu voir les changements en marche quelques secondes. Voir leur doc pour plus d'informations.
Ici vous pouvez télécharger Android Studio 2.0 aperçu.
PS: il y a quelques problèmes avec cette fonctionnalité. Ils ont énuméré à la documentation. Vérifier avant l'installation.
- Allez dans Fichier - > réglage- > Gradle->Réglez-le en mode hors ligne et cochez
J'ai été confronté au même problème pendant longtemps mais je l'ai résolu en ajustant les paramètres dans gradle.
Étape 1: dans L'Application Module ajouter une dépendance dans BuildScript
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
}
}
Étape 2: Ajouter dexOption et donner la heapSize suivante
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.
Si vous utilisez Windows 8...
Solutions DroidArc et AndroidDev où utile, mais pas enougth. Mon problème était lié à mon système D'exploitation Windows 8 et à son utilisation du disque 100%.
Surtout le service de recherche Windows, était le plus consommant. Désactivez-le avec: cmd (Admin) > net.arrêt exe "Recherche Windows"
J'ai suivi les instructions de ce lien et il a résolu le problème pour de vrai 4 conseils pour réparer 100% L'Utilisation du disque et améliorer les performances de Windows
J'espère que cela aide.
J'ai eu le même problème dans kotlin. La mise à jour du runtime Kotlin obsolète l'a résolu pour moi
J'ai eu un problème similaire sur mon ordinateur. Windows Defender bloquait une partie du bâtiment Gradle. Je l'ai désactivé, a bien fonctionné après cela.
Essayez de redémarrer votre ordinateur et d'exécuter à nouveau Android Studio. Travaillé pour moi en essayant de construire un projet Cordova / Phonegap avec une base de code cible Android.