Denunciar um erro

Queremos corrigir seus erros! No entanto, muitos erros não incluem as informações necessárias. Portanto, estamos concentrando nossos recursos limitados em erros que têm informações completas. Para aumentar a chance do seu erro ser corrigido, reserve um momento para a leitura deste documento.

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

Além disso, 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 com que o aplicativo Android funcione, acesse stackoverflow.com ou um dos diversos recursos de suporte para desenvolvedores do Android.

Como denunciar um erro

  1. Verifique se você está usando a versão mais recente das ferramentas. Gastamos muito tempo examinando erros que já foram corrigidos. Se fecharmos o seu problema e apontarmos para este documento, abra outro problema, desde que você possa reproduzi-lo usando a versão mais recente das ferramentas.

  2. Descreve as etapas exatas para reproduzir o problema. Seja específico. Se pudermos reproduzir o problema na primeira tentativa, a probabilidade de uma correção será muito maior. Se possível, inclua um fragmento de código (ou, melhor ainda, informe um projeto do github que pode ser usado para reproduzir o erro). Capturas de tela também são úteis para mostrar o que você está observando.

  3. Descreva o resultado esperado e o resultado observado.

  4. Inclua informações sobre versões. No Android Studio, você pode obter essas informações na caixa de diálogo About: clique em Help > About (ou, no Mac, clique em Android Studio > About Android Studio). Não é preciso destacar o texto para copiá-lo. Basta pressionar Control + C (ou Command + C no Mac) e cole o texto no relatório do erro.

  5. Informe a versão do Java utilizada (no Android Studio, essa informação está incluída na caixa de diálogo About), se for o caso.

  6. Informe o sistema operacional usado.

  7. Informe um resumo descritivo do erro. Você não imagina quantos erros têm resumos como "Erro", "Problema", "Exceção", "Não funciona" e assim por diante.

  8. Para determinados tipos de erros, precisamos de informações adicionais:

Repetindo, instruções claras para reproduzir o erro são essenciais. Se possível, compartilhe arquivos ou projetos para ajudar a reproduzir o erro (obviamente, não anexe nenhum código-fonte proprietário ao relatório do erro). Capturas de tela também podem ajudar a mostrar o que você quer informar.

Após reunir essas informações, registre o erro aqui.

Detalhes dos erros do Android Studio

Inclua as informações adicionais a seguir que sejam específicas dos erros do Android Studio.

Se o IDE travar

Se o próprio IDE aparenta estar muito lento ou totalmente travado, gere alguns despejos de encadeamentos e anexe-os ao relatório do erro. Esses despejos mostrarão o que mantinha o IDE tão ocupado (ou por qual recurso disputado estava aguardando).

Se o IDE estiver lento, mas não travado, anexe também o arquivo idea.log (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 IDE esgotar a memória

Se o IDE estiver esgotando a memória, gere um histograma da pilha executando:

jmap -histo:live <pid>

Se o IDE falhar ou acionar exceções

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

Gerar um despejo de encadeamentos

Um despejo de encadeamentos é uma impressão de todos os encadeamentos em execução na JVM e, para cada encadeamento, 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 encadeamentos com intervalo de alguns segundos.

Quando você denuncia erros em que o IDE estava extremamente ocupado com uma CPU sobrecarregada ou quando o IDE aparenta estar travado, um despejo de encadeamentos pode indicar que código estava executando muito trabalho ou quais encadeamentos estão disputando recursos e causando um deadlock.

O JDK é fornecido com uma ferramenta denominada "jstack", que pode ser usada para gerar um despejo de encadeamentos. Primeiro, é necessário encontrar o ID do processo do Android Studio. Para isso, você pode usar o comando "jps". (jstack e jps estão no diretório bin do JDK. Se você tiver vários JDKs instalados, use aqui 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 encadeamentos e salve-o no arquivo dump.txt desta forma:

jstack -l pid >> dump.txt

Se isso não funcionar, há algumas formas específicas de plataforma adicionais que permitem gerar um despejo de encadeamentos. Consulte Compatibilidade com IntelliJ para obter instruções detalhadas.

Detalhes dos erros do Instant Run

Para denunciar um problema com o Instant Run, siga estas etapas:

  1. Ative o Android Studio para registrar informações extra sobre a sessão do Instant Run.
  2. Se você quiser enviar feedback sobre um problema encontrado antes de concluir a etapa anterior, tente fazer com que o problema ocorra novamente.
  3. Envie um relato imediatamente após encontrar um problema do Instant Run.

O que coletamos

A ativação do IDE para registrar as informações a seguir sobre a sessão do Instant Run ajuda a equipe do Android Studio a compreender melhor o problema encontrado e é usada unicamente com essa finalidade:

  • idea.log: este registro captura informações detalhadas sobre o Android Studio e suas ferramentas do SDK enquanto executam suas diversas ações. Você pode ver esse registro você mesmo selecionando Help > Show Log in Explorer (ou Show Log in Finder no Mac).
  • build-info.xml: um arquivo intermediário usado pelo Android Studio para coordenar recursos do Instant Run com o plug-in do Android para Gradle.
  • build.log: Esse registro captura informações da compilação do Gradle. Essas informações são semelhantes às geradas quando você executa o Gradle com a opção de linha de comando --info e clica em View > Tool Windows > Gradle Console (ou em Gradle Console na barra da janela de ferramentas).
  • Saída do logcat: captura eventos de tempo de execução do Instant Run (ou seja, eventos com a tag InstantRun) do dispositivo ou emulador de destino durante a execução do aplicativo. Para saber mais sobre as saídas do logcat, consulte Gravar e visualizar registros com o logcat.
  • profile.log: esse registro oferece um perfil da rapidez com que o Gradle progrediu em cada tarefa da compilação.
  • TARGET-*: Esse é um arquivo vazio, com um nome determinado pelo Android Studio de acordo com o dispositivo de destino (por exemplo, TARGET-MOTOROLA-NEXUS6).

Ativar registro extra

Para conceder ao Android Studio permissões para capturar e enviar essas informações, siga estas etapas:

  1. Abra a caixa de diálogo Settings ou Preferences.
  2. Navegue até Build, Execution, Deployment > Instant Run.
  3. Marque a caixa de seleção Log extra info. Essa opção pode ser desativada a qualquer momento.
  4. Clique em OK.

Denunciar um problema

Após ativar o registro extra, reproduza todos os problemas do Instant Run ocorridos anteriormente. Imediatamente após a reprodução do problema, envie um relatório da seguinte forma:

  1. Selecione Help > Report Instant Run Issue na barra de menu. É exibida uma caixa de diálogo, semelhante à mostrada na figura 4.

    Figura 4. Você pode informar mais detalhes no campo de texto e examinar os registros que o Android Studio enviará justamente com a denúncia.

  2. Forneça informações adicionais no campo de texto para descrever a experiência, como as etapas para reproduzir o problema ou como o comportamento real diferiu das expectativas.
  3. Ao concluir, clique em OK.

Detalhes dos erros do Gradle e das Build Tools

Inclua as informações a seguir específicas dos problemas relacionados para criar projetos ou com a sincronia 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 Build Tools do módulo. Na página acima, localize Build Tools Version.
  • Versão do Android SDK Tools. Selecione Tools > Android > SDK Manager, clique em SDK Tools e localize Android SDK Tools

Detalhes para bugs do Android Emulator

Inclua as informações a seguir específicas dos bugs do emulador:

  • Versão do emulador. No emulador, abra Extended controls, clique em Help, clique na guia About para encontrar Emulator version
  • Versão do Android SDK Tools. Selecione Tools > Android > 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 My Computer e selecione Properties
    • No Mac: Clique no ícone Apple e clique em About This 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). Encontre a entrada para hw.device.name. Por exemplo: "hw.device.name=Nexus 5"