Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

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 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

Se o IDE estiver ficando sem memória, gere um histograma do heap executando:

jmap -histo:live <pid>
    

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 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 do 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.