Informar um bug

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

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

Observe que 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 Android funcionar, acesse stackoverflow.com (link em inglês) ou um dos diversos recursos de suporte para desenvolvedores Android.

Como informar um bug

  1. Confirme se você está usando a versão mais recente das ferramentas. Isso evita a revisão de bugs que já foram corrigidos. Se possível, também procure por problemas semelhantes no Issue Tracker do Android Studio para ver se o problema que você está enfrentando já foi relatado. Geralmente é possível usar a mensagem de erro como palavra-chave de pesquisa.

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

  3. Descreva as etapas exatas para reproduzir o problema. Se conseguirmos 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 para o bug. Você não imagina quantos bugs têm resumos como "Bug", "Problema", "Exceção", "Não funciona" e assim por diante. Isso dificulta a classificação dos problemas.

  6. Para alguns tipos de bugs, 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 ambiente de desenvolvimento integrado (IDE) aparenta estar muito lento ou totalmente travado, gere alguns dumps de linhas de execução e anexe-os ao relatório do bug. Eles 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 da 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 faz um heap dump e solicita a reinicialização do IDE. Se você reiniciá-lo, a análise de heap dump será iniciada imediatamente. Caso contrário, a análise de heap dump 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 da memória fica pronto para análise.

    Notificação que indica que um relatório de uso da 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 da 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 investigamos seus problemas de memória.

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

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

Gerar um dump de linhas de execução

Um dump 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 frames de pilha. Isso faz com que seja mais fácil ver o que está ocupando o ambiente de desenvolvimento integrado, principalmente se você gerar alguns dumps de linha de execução com poucos segundos de diferença.

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

O JDK acompanha uma ferramenta chamada "jstack", que pode ser usada para gerar um dump de linhas de execução. Primeiro, é necessário encontrar o ID do processo do Android Studio. Use o comando "jps" para isso. Tanto o jstack quanto o jps estão no diretório bin do JDK. Se você tiver vários JDKs instalados, use a mesma versão do que está executando o Android Studio. Essa informação pode ser encontrada 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 der certo, há outras formas específicas de plataforma que permitem gerar um despejo de linhas de execução. Consulte o Suporte do IntelliJ (link em inglês) para ver instruções detalhadas.

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

Anexe um projeto real ou de amostra que demonstre o problema. Essa é a melhor maneira de garantir que todas as informações necessárias sejam capturadas. Remova todas as informações confidenciais antes de compartilhar.

Caso não seja possível compartilhar um projeto, indique as versões das ferramentas que você está usando. Tente usar as versões estáveis ou de visualização mais recentes primeiro:

  • Versão do Plug-in do Android para Gradle: selecione File > Project Structure, clique em Project e localize Android Gradle Plugin Version.
  • Versão do Gradle: na página acima, localize Gradle Version.
  • Versão do Android Studio: selecione Help > About e localize a versão do Android Studio.

Além disso, inclua as seguintes informações quando aplicável:

  • Se um comportamento tiver mudado inesperadamente de uma versão anterior para a atual, indique as duas versões.
  • Se o build falhar com um erro, execute-a pela linha de comando com a opção --stacktrace (ou seja, ./gradlew <task> --stacktrace) e nos forneça um stack trace.
  • Se o build demorar mais do que o esperado, tente uma das seguintes opções:

Detalhes de bugs do Android Emulator

A maneira 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ê poderá 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 as insira no relatório gerado na próxima etapa.

  3. Aguarde até que o relatório do bug termine a coleta e, em seguida, clique em Send to Google. Essa ação abrirá uma janela para salvar o relatório 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, você precisará inserir manualmente os seguintes detalhes:

  • Versão do emulador: no emulador, abra Extended controls, clique em Help e depois na guia About para encontrar a Emulator version.
  • Versão das Ferramentas do SDK do Android: 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.