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:
- 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
- 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.
- 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 ...
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.
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.