Enregistrer et consulter des rapports de bugs

Un rapport de bug contient les journaux de l'appareil, les traces de pile et d'autres informations de diagnostic. Il vous permet d'identifier et de corriger les bugs dans votre application. Vous pouvez enregistrer un rapport de bug depuis votre appareil à l'aide de l'option pour les développeurs Take bug report (Créer un rapport de bug) de l'appareil, du menu Android Emulator ou de la commande adb bugreport sur votre ordinateur de développement.

Figure 1 : Options pour les développeurs sur un appareil

Pour générer un rapport de bug, vous devez activer les Options pour les développeurs sur votre appareil afin de pouvoir accéder à l'option Take bug report (Créer un rapport de bug).

Enregistrer le rapport de bug d'un appareil

Figure 2. Le rapport de bug est prêt

Pour obtenir un rapport de bug directement depuis votre appareil, procédez comme suit :

  1. Activez Developer options (Options pour les développeurs).
  2. Dans Developer options (Options pour les développeurs), appuyez sur Take bug report (Créer un rapport de bug).
  3. Sélectionnez le type de rapport de bug souhaité, puis appuyez sur Rapport.

    Au bout de quelques instants, vous recevrez une notification indiquant que le rapport de bug est prêt, comme illustré dans la figure 2.

  4. Pour partager le rapport de bug, appuyez sur la notification.

Enregistrer un rapport de bug d'Android Emulator

Depuis Android Emulator, vous pouvez utiliser la fonctionnalité File a bug (Signaler un bug) dans les commandes avancées :

  1. Cliquez sur More (Plus)  dans le panneau de l'émulateur.
  2. Dans la fenêtre Extended controls (Commandes avancées), sélectionnez Bug report (Rapport de bug).

    Un écran contenant les détails du rapport de bug, tels que la capture d'écran, les informations de configuration de l'AVD et le journal du rapport de bug s'affiche. Vous pouvez également saisir un message avec les étapes permettant de reproduire le bug, puis l'enregistrer avec le rapport.

  3. Attendez la fin de la collecte du rapport de bug, puis cliquez sur Save Report (Enregistrer le rapport).

Enregistrer un rapport de bug avec adb

Si un seul appareil est connecté, vous pouvez obtenir un rapport de bug avec adb, en procédant comme suit :

$ adb bugreport E:\Reports\MyBugReports

Si vous ne spécifiez pas de chemin d'accès pour le rapport de bug, il est enregistré dans le répertoire local.

Si plusieurs appareils sont connectés, vous devez spécifier l'appareil avec l'option -s. Exécutez les commandes adb suivantes pour obtenir le numéro de série de l'appareil et générer le rapport de bug :

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

Enregistrer un rapport de bug plus ancien

Par défaut, les rapports de bug sont enregistrés sous /bugreports et peuvent être consultés à l'aide de la commande suivante :

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

Vous pouvez ensuite extraire le fichier ZIP via adb pull :

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

Inspecter le fichier ZIP du rapport de bug

Par défaut, le fichier ZIP est appelé bugreport-BUILD_ID-DATE.zip. Il peut contenir plusieurs fichiers, mais le fichier le plus important est bugreport-BUILD_ID-DATE.txt. Il s'agit du rapport de bug, qui contient les résultats de diagnostic pour les services système (dumpsys), les journaux d'erreurs (dumpstate) et les journaux des messages système (logcat). Les messages système incluent les traces de la pile lorsque l'appareil génère une erreur et des messages écrits à partir de toutes les applications avec la classe Log.

Le fichier ZIP comporte un fichier de métadonnées version.txt contenant la lettre de version Android. Lorsque Systrace est activé, le fichier ZIP inclut également un fichier systrace.txt. L'outil Systrace vous permet d'analyser les performances de votre application en capturant et en affichant les temps d'exécution des processus de votre application et des autres processus du système Android.

L'outil dumpstate copie les fichiers du système de fichiers de l'appareil dans l'archive ZIP située dans le dossier FS afin que vous puissiez les référencer. Par exemple, un fichier /dirA/dirB/fileC sur l'appareil génère une entrée FS/dirA/dirB/fileC dans le fichier ZIP.

Figure 3. Structure du fichier de rapport de bug

Pour en savoir plus, consultez Lire des rapports de bugs.

Recevoir des rapports de vos utilisateurs

Il peut être utile d'enregistrer les rapports de bug, car vous utilisez vous-même l'application, mais vos utilisateurs finaux ne peuvent pas partager facilement ces types de rapports avec vous. Pour obtenir des rapports d'erreur avec des traces de la pile provenant d'utilisateurs réels, profitez des fonctionnalités de rapports d'erreur de Google Play et Firebase Crash Reporting.

Google Play Console

Vous pouvez obtenir des rapports de la Google Play Console pour afficher les données liées aux plantages et aux erreurs de type "L'application ne répond pas" (ANR) des utilisateurs qui ont installé votre application à partir de Google Play. Les données sont disponibles pour les six mois précédents.

Pour en savoir plus, consultez Afficher les plantages et les erreurs ANR (l'application ne répond pas) dans l'aide de la Play Console.

Firebase Crash Reporting

Les rapports Firebase Crashlytics permettent de créer des rapports détaillés sur les erreurs de votre application. Les erreurs sont regroupées par problèmes, car elles ont des traces de pile similaires, et sont classées en fonction de la gravité pour les utilisateurs. En plus de recevoir des rapports automatiques, vous pouvez consigner des événements personnalisés pour identifier les étapes qui précèdent un plantage.

Pour commencer à recevoir des rapports d'erreur de n'importe quel utilisateur, ajoutez les dépendances Firebase à votre fichier build.gradle. Pour en savoir plus, consultez Firebase Crashlytics.