Capturar e ler relatórios de bugs

Um relatório de bug contém registros de dispositivo, rastreamentos de pilha e outras informações de diagnóstico para ajudar você a localizar e corrigir bugs no seu app. Você pode capturar um relatório de bug do seu dispositivo usando a opção de desenvolvedor Take bug report no dispositivo, o menu do Android Emulator ou o comando adb bugreport na sua máquina de desenvolvimento.

Figura 1. Opções do desenvolvedor

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

Capturar um relatório do bug em um dispositivo

Figura 2. O relatório do bug está pronto

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

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

    Depois de um momento, você receberá uma notificação informando que o relatório está pronto (veja a Figura 2).

  4. Para compartilhar o relatório do bug, 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 Mais no painel do emulador.
  2. Na janela Controles estendidos, selecione Relatório de bug à esquerda.

    Isso abrirá uma tela em que você pode ver os detalhes do relatório do bug, como a captura de tela, as informações de configuração do AVD e um registro do relatório do bug. Você também pode digitar uma mensagem com etapas de reprodução para salvar com o relatório.

  3. Aguarde até que a coleta do relatório do bug seja concluída e clique em Salvar relatório.

Capturar um relatório do bug usando o adb

Se houver apenas um dispositivo conectado, você poderá gerar um relatório do bug usando adb da seguinte forma:

    $ adb bugreport E:\Reports\MyBugReports
    

Se você não especificar um caminho para o relatório do bug, ele 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 do bug.

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

    $ adb -s 8XV7N15C31003476 bugreport
    

Inspecionar o arquivo ZIP do relatório do bug

Por padrão, o arquivo ZIP é chamado bugreport-BUILD_ID-DATE.zip e pode conter vários arquivos, mas o arquivo mais importante é bugreport-BUILD_ID-DATE.txt. Esse é o relatório do bug e ele contém a saída de diagnóstico para os serviços do sistema (dumpsys), os registros de erros (dumpstate) e os registros de mensagens do sistema (logcat). As mensagens do sistema incluem rastreamentos de pilha 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 que contém a carta de lançamento do Android e, quando o systrace está ativado, o arquivo ZIP também contém um arquivo systrace.txt. A ferramenta Systrace ajuda a analisar o desempenho do aplicativo, capturando e exibindo tempos de execução dos processos do seu aplicativo e 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 você possa referenciá-los. Por exemplo, um arquivo /dirA/dirB/fileC no dispositivo geraria uma entrada FS/dirA/dirB/fileC no arquivo ZIP.

Figura 3. Estrutura de arquivos de relatório do bug

Para mais informações, consulte Leitura de relatórios de bugs.

Receber relatórios dos usuários

Capturar relatórios de bug conforme descrito acima é algo útil, já que é você quem está usando o app. Seus usuários finais não conseguem compartilhar esses tipos de relatório de bug com você tão facilmente. Para gerar relatórios de erros com rastreamentos de pilha a partir de usuários do mundo real, use os recursos de relatórios de falhas 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. Os dados estão disponíveis para os seis meses anteriores.

Para mais informações, consulte Visualizar falhas e erros ANR na página de Ajuda do Play Console.

Firebase Crash Reporting

O Firebase Crash Reporting cria relatórios detalhados dos erros no seu app. Os erros são agrupados em problemas com base em rastreamentos de pilha semelhantes e classificados pela gravidade do impacto nos usuários. Além dos relatórios automáticos, você pode registrar eventos personalizados para ajudar a capturar as etapas que levam a uma falha.

Para começar a receber relatórios de falhas de qualquer usuário, basta adicionar as dependências do Firebase ao seu arquivo build.gradle. Para mais informações, consulte Firebase Crash Reporting.