Informar um bug

Queremos corrigir os bugs! No entanto, muitos deles não trazem as informações necessárias. Portanto, estamos concentrando nossos recursos limitados em bugs que têm informações completas. Para aumentar as chances de o seu bug ser corrigido, leia este documento.

Se você não seguir estas etapas, fecharemos o bug. Caso isso aconteça, basta enviar o erro novamente com mais informações.

Além disso, o Issue Tracker não é um fórum de suporte. Se você tiver dúvidas sobre como usar as ferramentas ou como fazer o app para Android funcionar, acesse stackoverflow.com ou um dos diversos recursos de suporte para desenvolvedores do Android.

Como informar um bug

  1. Verifique se você está usando a versão mais recente das ferramentas. Passamos muito tempo analisando bugs que já foram corrigidos. Se fecharmos seu problema e ele não tiver sido resolvido, abra outro, contanto que você consiga reproduzi-lo usando a versão mais recente.

  2. Abra um relatório de bugs no Android Studio selecionando Help > Submit Feedback. Essa é a maneira mais fácil de iniciar um bug porque o relatório de bugs é preenchido com sua versão do Android Studio, do Java e informações do sistema, que são necessárias para reproduzir o problema corretamente. Caso contrário, deixe seu bug aqui e adicione as informações sobre a versão manualmente.

  3. Descreva as etapas exatas para reproduzir o problema. Se pudermos reproduzir o problema na primeira tentativa, a probabilidade de corrigi-lo será muito maior. Se possível, inclua um snippet de código ou, melhor ainda, informe um projeto do github que possa ser usado para reproduzir o bug. Capturas de tela também são úteis para mostrar o que você está observando.

  4. Descreva o resultado esperado e o resultado observado.

  5. Escolha um resumo descritivo do bug. Você não imagina quantos bugs têm resumos como "Erro", "Problema", "Exceção", "Não funciona" e assim por diante. Isso dificulta a classificação dos problemas.

  6. Para determinados tipos de bug, precisamos de mais informações:

Detalhes de bugs do Android Studio

Inclua as informações a seguir, específicas para os bugs do Android Studio.

Se o ambiente de desenvolvimento integrado travar

Se o próprio ambiente de desenvolvimento integrado (IDE, na sigla em inglês) aparenta estar muito lento ou totalmente travado, gere alguns despejos de linhas de execução e anexe-os ao relatório do bug. Esses despejos mostrarão o que mantinha o IDE tão ocupado ou por qual recurso disputado ele estava aguardando.

Se o IDE estiver lento, mas não travado, anexe também o arquivo idea.log. Para isso, selecione Help > Show Log in Finder. Esse arquivo indicará se o motivo da lentidão do IDE é o constante acionamento de erros para registro.

Se o ambiente de desenvolvimento integrado esgotar a memória

Às vezes, os problemas de memória no Android Studio são difíceis de reproduzir e informar. Para ajudar a resolver esse problema, o Android Studio agora inclui um relatório de uso de memória que pode ser enviado para a equipe do Android Studio para ajudar a identificar a origem dos problemas de memória.

Gerar um relatório de uso de memória

Para gerar um relatório de uso de memória, siga as seguintes etapas:

  1. Clique em Help > Analyze Memory Usage na barra de menus.

    O Android Studio despeja o heap e solicita a reinicialização do IDE. Se você reiniciá-lo, a análise de despejo de heap será iniciada imediatamente. Caso contrário, a análise do despejo de heap será iniciada na próxima vez que você executar o Android Studio. Nos dois casos, o IDE mostra uma notificação assim que o relatório de uso de memória fica pronto para análise.

    Notificação que indica que um relatório de uso de memória está pronto para análise

  2. Clique em Review Report.

    Antes de enviar o relatório, você pode revisar todas as informações incluídas.

    Um relatório de uso de memória.

  3. Depois de concluir a revisão, copie e cole o conteúdo do relatório em um arquivo e anexe-o ao enviar o bug.

    Enviar as informações do relatório dessa forma garante que a equipe do Android Studio possa se comunicar com você usando o Issue Tracker enquanto pesquisamos seus problemas de memória.

Se o ambiente de desenvolvimento integrado falhar ou acionar exceções

Para outros tipos de falha, anexe o arquivo idea.log. Selecione Help > Show Log in Finder.

Gerar um despejo de linhas de execução

Um despejo de linhas de execução é uma impressão de todas as linhas em execução na JVM e, para cada linha, uma impressão de todos os quadros da pilha. Isso facilita a visualização do que mantinha o IDE tão ocupado, especialmente se você gerar alguns despejos de linhas de execução com intervalo de poucos segundos.

Quando você informa bugs em que o IDE está extremamente ocupado com uma CPU sobrecarregada ou quando ele aparenta estar travado, um despejo de linhas de execução pode indicar que código está executando muito trabalho ou quais linhas estão disputando recursos e causando um deadlock.

O JDK é oferecido com uma ferramenta denominada "jstack", que pode ser usada para gerar um despejo de linhas de execução. Primeiro, é necessário encontrar o ID do processo do Android Studio. Use o comando "jps" para isso. jstack e jps estão no diretório bin do JDK. Se você tiver vários JDKs instalados, use a mesma versão do JDK que está executando o Android Studio. Essa versão pode ser vista na caixa de diálogo "About" do Android Studio.

No Linux e no Mac:

jps -mv | grep studio
    

No Windows:

jps -mv | findstr studio
    

O resultado será uma longa linha como:

$ jps -mv | grep studio
    37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...
    

O primeiro número à esquerda, 37605 neste caso, é o ID do processo.

Em seguida, gere um despejo de linhas de execução e salve-o no arquivo dump.txt, desta forma:

jstack -l pid >> dump.txt
    

Se isso não deu certo, há outras formas específicas de plataforma que permitem gerar um despejo de linhas de execução. Consulte Compatibilidade com IntelliJ (link em inglês) para ver instruções detalhadas.

Detalhes de bugs do Gradle e das ferramentas de compilação

Inclua as informações a seguir específicas dos problemas relacionados à compilação de projetos ou à sincronização do Gradle:

  • Versão do Gradle: selecione File > Project Structure, clique em Project e localize Gradle version.
  • Versão do plug-in do Android: na mesma página da versão do Gradle, localize Android Plugin Version.
  • Versão do SDK de compilação do módulo: na página acima, selecione o módulo no painel esquerdo e localize Compile Sdk Version.
  • Versão das ferramentas de compilação do módulo: na página acima, localize Build Tools Version.
  • Versão do Android SDK Tools: Selecione Tools > SDK Manager, clique em SDK Tools e localize Android SDK Tools.

Detalhes de bugs do Android Emulator

A forma mais fácil de coletar os detalhes do emulador é usar o recurso File a bug nos controles avançados:

  1. Clique em More no painel do emulador.
  2. Na janela de Extended controls, selecione Bug Report à 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. Insira as etapas para reprodução aqui ou espere e insira-as no relatório gerado na próxima etapa.

  3. Aguarde até que o relatório de bugs termine a coleta e, em seguida, clique em Send to Google. Isso abrirá uma janela para salvar o relatório do bug em uma pasta. Depois disso, seu navegador será aberto para criar um relatório no Google Issue Tracker, com os detalhes de emulação necessários já preenchidos.

  4. No relatório, preencha todos os detalhes restantes, como as etapas para reprodução do bug, e anexe os arquivos salvos quando você criou o relatório do bug.

Caso contrário, é preciso inserir manualmente os seguintes detalhes:

  • Versão do emulador: no emulador, abra Extended controls, clique em Help e depois na guia About para encontrar Emulator version.
  • Versão do Android SDK Tools: selecione Tools > SDK Manager, clique em SDK Tools e localize Android SDK Tools.
  • Modelo de CPU do Host.
    • No Linux, abra /proc/cpuinfo
    • No Windows, clique com o botão direito em Meu computador e selecione Propriedades.
    • No Mac, clique no ícone da Apple e depois em Sobre o Mac.
  • Nome do dispositivo: no AVD Manager, clique para abrir o menu suspenso na coluna Actions para o dispositivo e selecione View Details (ou abra o arquivo $avdname.avd/config.ini). Localize a entrada de hw.device.name. Por exemplo: hw.device.name=Nexus 5