Capturar e ler relatórios de bugs

Um relatório de bugs contém registros de dispositivo, stack traces e outras informações de diagnóstico para você localizar e corrigir bugs no app. Para capturar um relatório de bug do seu dispositivo, use a opção de desenvolvedor Criar relatório de bugs, o menu do Android Emulator ou o comando adb bugreport na máquina de desenvolvimento.

Figura 1. Opções do desenvolvedor em um dispositivo.

Para gerar um relatório de bugs, você precisa ativar as Opções do desenvolvedor no seu dispositivo e acessar a opção Criar relatório de bugs.

Capturar um relatório de bugs em um dispositivo

Figura 2. O relatório de bugs está pronto

Para gerar um relatório de bugs diretamente no seu dispositivo, faça o seguinte:

  1. Ative as opções do desenvolvedor.
  2. Em Opções do desenvolvedor, toque em Criar relatório de bugs.
  3. Selecione o tipo de relatório de bugs que você quer e toque em Informar.

    Após alguns instantes, você vai receber uma notificação de que o relatório está pronto, como mostrado na figura 2.

  4. Para compartilhar o relatório de bugs, toque na notificação.

Capturar um relatório de bug no Android Emulator

No Android Emulator, você pode usar o recurso Registrar um bug nos controles estendidos:

  1. Clique em More no painel do emulador.
  2. Na janela Extended controls, selecione Bug report.

    O sistema vai abrir uma tela exibindo os detalhes do relatório de bugs, por exemplo, captura de tela, informações de configuração do AVD e um registro do relatório. Você também pode digitar uma mensagem com etapas de reprodução para salvar com o relatório.

  3. Aguarde até que o relatório de bugs seja gerado e clique em Save Report.

Capturar um relatório de bugs usando o adb

Se há apenas um dispositivo conectado, você pode gerar um relatório de bugs usando adb da seguinte forma:

$ adb bugreport E:\Reports\MyBugReports

Se você não especificar um caminho para o relatório, ele vai ser salvo no diretório local.

Se houver vários dispositivos conectados, especifique o dispositivo com a opção -s. Execute os seguintes comandos adb para ver o número de série do dispositivo e gerar o relatório de bugs:

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

$ adb -s 8XV7N15C31003476 bugreport

Salvar um relatório de bugs mais antigo

Por padrão, os relatórios de bugs são salvos em /bugreports e podem ser visualizados usando o seguinte comando:

$ 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

Em seguida, é possível extrair o arquivo ZIP usando adb pull:

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

Inspecionar o arquivo ZIP do relatório de bugs

Por padrão, o arquivo ZIP é chamado bugreport-BUILD_ID-DATE.zip. Ele pode conter vários arquivos, mas o mais importante é o bugreport-BUILD_ID-DATE.txt. Esse é o relatório de bugs e contém a saída de diagnóstico para serviços do sistema (dumpsys), registros de erros (dumpstate) e registros de mensagens do sistema (logcat). As mensagens do sistema incluem stack traces quando o dispositivo gera um erro e mensagens escritas de todos os apps com a classe Log.

O arquivo ZIP contém um arquivo de metadados version.txt com a carta de lançamento do Android. Quando o Systrace está ativado, ele também contém um arquivo systrace.txt. A ferramenta Systrace ajuda a analisar o desempenho do app, gravando e exibindo os tempos de execução dos processos do app e de outros processos do sistema Android.

A ferramenta dumpstate copia arquivos do sistema de arquivos do dispositivo para o arquivo ZIP na pasta FS para que possam ser referenciados. Por exemplo, um arquivo /dirA/dirB/fileC no dispositivo geraria uma entrada FS/dirA/dirB/fileC no arquivo ZIP.

Figura 3. Estrutura do arquivo do relatório de bugs.

Para ver mais informações, consulte Como ler relatórios de bugs.

Receber relatórios dos usuários

É útil gerar relatórios de bugs quando é você quem está usando o app. Contudo, seus usuários finais não podem compartilhar esses tipos de relatórios com você tão facilmente. Para gerar relatórios de erros com stack traces de usuários reais, use os recursos de relatórios de erros do Google Play e do Firebase.

Google Play Console

Você pode gerar relatórios no Google Play Console para ver dados de falhas e erros de "O app não está respondendo" (ANR, na sigla em inglês) de usuários que instalaram seu app no Google Play. Dados de seis meses anteriores ficam disponíveis.

Para mais informações, consulte Ver falhas e erros "O app não está respondendo" (ANR) na página de Ajuda do Play Console.

Firebase Crash Reporting

O Firebase Crash Reporting cria relatórios detalhados dos erros presentes no seu app. Os erros são agrupados em problemas com base em stack traces semelhantes e classificados pela gravidade do impacto para os usuários. Além dos relatórios automáticos, é possível registrar eventos personalizados para capturar as etapas que levam a uma falha.

Para começar a receber relatórios de erros de qualquer usuário, adicione as dependências do Firebase ao arquivo build.gradle. Para saber mais, consulte Firebase Crashlytics.