Informar um bug

Siga as etapas nesta página para preencher um relatório de bug. Há recursos limitados para corrigir bugs. Por isso, aqueles que têm informações completas são priorizados. Os relatórios de bugs incompletos são fechados. Se isso acontecer, reenvie o bug com mais informações.

Para garantir que você não informe um bug que já foi corrigido, use as versões mais recentes das ferramentas. Também é possível pesquisar problemas semelhantes no Issue Tracker do Android Studio para conferir se o problema já foi informado.

Como informar um bug

Para informar um bug, siga estas etapas:

  1. Para abrir um relatório de bug no Android Studio, selecione Help > Submit Feedback.

    Essa é a maneira mais fácil de iniciar um bug, porque ele preenche o relatório do bug com sua versão do Android Studio, Kotlin ou Java, além de informações do sistema, que são necessárias para reproduzir corretamente o problema.

    Você também pode registrar seu bug aqui e adicionar as informações de versão por conta própria.

  2. Anexe um relatório de diagnóstico para que possamos depurar seu problema. Para gerar um arquivo ZIP do relatório de diagnóstico, clique em Help > Collect Logs and Diagnostic Data.

  3. Descreva as etapas exatas para reproduzir o problema. Envie o máximo de informações possível, incluindo snippets de código, um projeto do GitHub que pode ser usado para reproduzir o bug e capturas de tela ou gravações do que você está observando.

  4. Descreva o problema em detalhes. Explique o resultado esperado e o que você observou.

  5. Escolha um título descritivo para o relatório do bug. Isso facilita a classificação por problema.

Para determinados bugs, precisamos de mais informações, conforme descrito nas seções a seguir:

Detalhes de bugs do Android Studio

Para informar bugs específicos do Android Studio, inclua mais informações, conforme descrito nesta seção.

Se o ambiente de desenvolvimento integrado travar

Se o ambiente de desenvolvimento integrado parecer muito lento ou totalmente travado, gere alguns despejos de linhas de execução, conforme descrito nesta página, e anexe-os ao relatório do bug. O despejo de linhas de execução mostra o que o ambiente de desenvolvimento integrado está fazendo que está diminuindo a velocidade dele.

Se o ambiente de desenvolvimento integrado estiver lento, mas não travado, anexe o arquivo idea.log ao relatório do bug. Para fazer isso, selecione Help > Collect Logs and Diagnostic Data ou Help > Show Log in Files (Help > Show Log in Finder no macOS). Esse arquivo mostra se o ambiente de desenvolvimento integrado está gerando erros no registro.

Usar perfis de CPU para diagnosticar lentidão

Se você estiver com problemas de lentidão no Android Studio, os perfis de CPU às vezes podem ajudar a diagnosticar o problema.

Siga estas etapas para capturar um perfil de CPU usando o plug-in de teste de desempenho do Android Studio:

  1. Instale o plug-in.

    • No Android Studio, pesquise "Performance Testing" no marketplace de plug-ins.
    • Você também pode fazer o download de uma versão compatível com o Android Studio no site do plug-in.
  2. Crie o perfil de CPU.

    1. Quando o Android Studio parecer lento, selecione Start CPU Usage Profiling.
    2. Repita algumas ações para que a latência é problemática, como preenchimento automático de código, digitação e espera para que o destaque seja atualizado etc.
    3. Clique em Stop CPU Usage Profiling.
  3. Compartilhe o arquivo do perfil.

    Um balão será mostrado com o nome de arquivo de snapshot da CPU, que segue o formato snapshot-NNN. Compartilhe esse arquivo de snapshot no seu relatório do bug.

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 ambiente de desenvolvimento integrado vai notificar você assim que o relatório de uso de memória estiver pronto para análise, conforme mostrado na Figura 1.

    Notificação que indica que um relatório de uso da memória está pronto para
     análise
    Figura 1. Notificação do relatório de uso da memória.
  2. Clique em Review Report.

    Antes de enviar o relatório, você pode analisar as informações incluídas:

    Um relatório de uso da memória
    Figura 2. Análise do 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.

    Isso permite que a equipe do Android Studio se comunique com você usando o Issue Tracker enquanto investiga 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 encontrado selecionando Help > Collect Logs and Diagnostic Data ou Help > Show Log in Files (Help > Show Log in Finder no macOS).

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. Para cada linha de execução, é incluída uma impressão de todos os frames de pilha. Isso facilita a verificação do que está ocupando o ambiente de desenvolvimento integrado, principalmente se você gerar alguns despejos de linha de execução com poucos segundos de diferença.

Quando você informa bugs em que o ambiente de desenvolvimento integrado 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 impasse.

O JDK é fornecido com uma ferramenta chamada jstack, que pode ser usada para gerar um despejo de linhas de execução. Primeiro, encontre o ID de processo (PID) do Android Studio. Para fazer isso, use este comando jps:

No Linux ou no macOS:

jps -mv | grep studio

No Windows:

jps -mv | findstr studio

Será mostrada uma linha longa, 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 (37605, neste exemplo) é o ID de processo.

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

jstack -l pid >> dump.txt

Se isso não funcionar, há algumas formas específicas de plataforma que podem ser geradas por um despejo de linhas de execução. Para ver instruções detalhadas, consulte Suporte ao IntelliJ.

Detalhes de bugs do Gradle e das ferramentas de build

Para informar um bug de ferramentas de build ou do Gradle, anexe um projeto real ou de exemplo que demonstre o problema para garantir que todas as informações necessárias sejam capturadas. Remova todas as informações sensíveis antes de compartilhar.

Se não for possível compartilhar um projeto, indique as versões das ferramentas que você está usando. Tente usar as versões estáveis ou de pré-lançamento mais recentes antes de informar um bug. Para encontrar as versões da ferramenta, faça o seguinte:

  • Versão do Plug-in do Android para Gradle:

    1. Selecione File > Project Structure.
    2. Clique em Project.
    3. Localize Android Gradle Plugin Version.
  • Versão do Gradle:

    1. Selecione File > Project Structure.
    2. Clique em Project.
    3. Localize Gradle Version.
  • Versão do Android Studio:

    1. Selecione Help > About.
    2. Localize Android Studio Version.

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-o na linha de comando com a opção --stacktrace (como ./gradlew <task> --stacktrace) e forneça um stack trace no relatório do bug.
  • Se o build demorar mais do que o esperado, tente uma das seguintes opções:
    • Execute ./gradlew <task> --scan e compartilhe a verificação de build do Gradle gerada no relatório do bug.
    • Execute ./gradlew <task> -Pandroid.enableProfileJson=true e compartilhe o Rastreamento do Chrome arquivos gerados no diretório <root-project>/build/android-profile.

Detalhes de bugs do Android Emulator

Siga estas etapas para usar os controles estendidos do emulador para coletar informações e registrar um bug:

  1. No painel do emulador, clique em More .
  2. Na janela Extended controls, selecione Bug Report.

    Isso vai abrir uma tela com os detalhes do relatório do bug, como captura de tela, 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.

    Uma janela vai se abrir para você salvar o relatório do bug em uma pasta. O navegador também vai se abrir para criar um relatório no Issue Tracker do Google com os detalhes necessários do emulador 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, insira manualmente os seguintes detalhes:

  • Versão do emulador:

    1. No emulador, abra Extended controls.
    2. Clique em Help.
    3. Clique na guia About para encontrar a Emulator version.
  • Versão das Ferramentas do SDK do Android:

    1. Selecione Tools > SDK Manager.
    2. Clique em SDK Tools.
    3. 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 macOS, selecione o ícone da Apple e clique em Sobre o Mac.
  • Nome do dispositivo:

    1. No AVD Manager, clique para abrir o menu na coluna Actions para o dispositivo.
    2. Selecione View Details ou abra o arquivo $avdname.avd/config.ini.
    3. Localize a entrada de hw.device.name. Por exemplo: hw.device.name=Nexus 5