Analyser une trace de la pile

Déboguer une application nécessite souvent d'utiliser les traces de la pile. Une trace de la pile est générée lorsque votre application plante en raison d'une erreur ou d'une exception. Vous pouvez également imprimer une trace de la pile depuis n'importe quel endroit du code de votre application à l'aide de méthodes telles que Thread.dumpStack().

Pendant que votre application s'exécute en mode débogage sur un appareil connecté, Android Studio affiche et met en surbrillance les traces de la pile dans la vue Logcat, comme le montre la figure 1. Une trace de la pile affiche une liste d'appels de méthode qui entraînent la génération de l'exception, ainsi que les noms de fichiers et les numéros de ligne où les appels ont eu lieu.

Figure 1. Trace de la pile dans Logcat

Cliquez sur les noms de fichiers en surbrillance pour ouvrir les fichiers correspondants et examiner la source de l'appel de méthode. Cliquez sur Vers le haut de la trace de la pile  et sur Vers le bas de la trace de la pile  pour parcourir rapidement les lignes de trace de pile affichées dans la fenêtre Logcat.

Ouvrir des traces de la pile à partir de sources externes

Parfois, vous pouvez souhaiter analyser les traces de la pile partagées dans un rapport de bug plutôt que celles que vous avez trouvées lors du débogage. Pour analyser les données de Firebase Crashlytics, utilisez la fenêtre de l'outil App Quality Insights. Pour analyser des données provenant d'autres sources (par exemple les traces de pile générées sur les appareils de vos utilisateurs à partir de la console Google Play), procédez comme suit :

  1. Ouvrez votre projet dans Android Studio.

    Remarque : Assurez-vous que le code source que vous consultez provient de la même version de l'application que celle qui a généré la trace de la pile. Si le code est différent, il y aura des incohérences entre les noms de fichiers et les numéros de ligne, ou au niveau de l'ordre des appels dans la trace de la pile et dans votre projet.

  2. Dans le menu Analyze (Analyser), cliquez sur Analyze Stack Trace (Analyser la trace de la pile).

    Fenêtre "Analyze Stack Trace" (Analyser la trace de la pile)

    Figure 2. Fenêtre "Analyze Stack Trace" (Analyser la trace de la pile)

  3. Collez le texte de la trace de la pile dans la fenêtre Analyze Stack Trace (Analyser la trace de la pile), puis cliquez sur OK.

Comme l'illustre la figure 3, un nouvel onglet <Stacktrace> s'ouvre dans Android Studio. Il contient la trace de la pile que vous avez collée dans la fenêtre Run (Exécuter).

Fenêtre de la trace de la pile

Figure 3. Onglet <Stacktrace> dans Android Studio

Suivre les traces de la pile nouvellement ajoutées au presse-papiers

Pour améliorer votre productivité si vous utilisez fréquemment des traces de piles externes, vous pouvez autoriser Android Studio à surveiller en permanence le presse-papiers du système afin d'identifier les nouvelles traces de la pile. Pour cela, procédez comme suit :

  1. Ouvrez l'outil Analyze Stacktrace (Analyser la trace de la pile).
  2. Cochez la case Automatically detect and analyze thread dumps copied to the clipboard outside of IntelliJ IDEA (Détecter et analyser automatiquement les vidages de thread copiés dans le presse-papiers en dehors d'IntelliJ IDEA).
  3. Copiez une trace de pile d'une autre application, telle qu'un navigateur Web, dans le presse-papiers du système.

Lorsque vous revenez à la fenêtre Android Studio, la trace de la pile s'ouvre automatiquement sous la fenêtre Run (Exécuter). Vous n'avez donc pas besoin de la coller dans Analyze Stack Trace (Analyser la trace de la pile).