Logcat não exibe minhas chamadas de registro


114

Sou totalmente novato em programação Android e queria aprender como depurar meus aplicativos. Não consigo ter minhas chamadas Log.i | d | v exibidas no LogCat.

Aqui está o código que estou usando. Como você pode ver, eu defini uma constante LOG_TAG, mas não consigo encontrá-la no LogCat. Também importei android.util.Log E certifiquei-me de que em meu AndroidManifest tenho "debuggable" definido como TRUE.

Eu também verifiquei http://developer.android.com/reference/android/util/Log.html sem sorte para resolver esse problema.

O que estou fazendo de errado? Estou procurando no lugar certo? Eu tentei usar a perspectiva DDMS e Debug também, sem sorte. Qualquer ajuda a este noob seria muito apreciada. Obrigado.

Meu ambiente: Windows XP IDE = Eclipse Versão: 3.6.1, ID de compilação: M20100909-0800 Emulador = tendo apontado para android sdk 2.1 api 7

// código muito básico OLÁ World com algumas chamadas Log.i

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

Parece que você não está fazendo nada errado. Tem certeza de que sua atividade está sendo iniciada? Você tem algum filtro definido na visualização do logcat? Você tentou a versão de linha de comando do logcat? (adb logcat)
Cheryl Simon

Sim, tentei a linha de comando e a saída para um arquivo txt e ainda não consegui encontrar. Sei que a atividade começou porque vejo a mensagem "Hello World" no emulador. Tentei visualizar o logcat com e sem filtros e ainda sem sorte.
Cavachon de

Experimente a linha de comando adb logcat e não filtre nada primeiro. Tenho certeza de que seu código está funcionando e sendo impresso no log.
Heikki Toivonen

O LogCat funciona? Por exemplo, você vê entradas de log de outros aplicativos (aplicativos do sistema, por exemplo)?
Vit Khudenko

Pode ser específico do dispositivo. às vezes precisamos ativar os registros do menu oculto do telefone stackoverflow.com/a/43999262/2783229
nitesh

Respostas:


143

Ao usar o Eclipse, na perspectiva DDMS, certifique-se de que o dispositivo correto (provavelmente emulator-xxxx) esteja selecionado e realçado. Só então você obterá a saída do logcat na visualização do logcat.

Além disso, o plugin do Android é um pouco peculiar e às vezes mostra apenas a última linha na visualização do logcat. Se isso acontecer, tente limpar o log. Depois disso, você deve obter todas as entradas de log novamente (funciona para mim de qualquer maneira).


Sim, todos os problemas que tive também. Se você rolar na visualização Logcat, ela não rolará com atualizações futuras automaticamente até que você role de volta para o final.
Mike Yockey

2
Ha! Eu estava lutando contra isso por um tempo. Abri o DDMS e selecionei um emulador antigo. Por que ele não assume o emulador atualmente em execução é estranho.
Will Curran

A resposta de ddewaele resolveu meu problema, você só precisa deixar o LogCat onde seu foco deveria estar. Como uma observação lateral, você não precisa mudar a perspectiva para abrir o menu de dispositivos. Basta ir Janela >> Mostrar Visualização >> Outro >> Android >> Dispositivos para abrir o painel de dispositivos
Jay

@yock, acredito que seja intencional, pois pressupõe-se que você queira parar e ler no ponto para o qual rolou.
Michael Mior

1
Hahaha Eu sou tão estúpido que não sei o que é DDMS e nem onde encontrá-lo.
Neon Warge

71

Se todo o resto falhar:

Eu fiz todas as coisas acima e não consegui descobrir o que estava errado,

Teste com:

adb logcat

para descobrir que minhas entradas eram de fato no logcat, mas eram peculiaridades de adt.

Consertar:

Reinicie o eclipse

Essa foi a única coisa que o consertou.


1
Isso funciona, mas não consigo reiniciar o Eclipse porque esse problema acontece muito comigo. Alguém tem uma solução melhor?
Khaled Alanezi

@KhaledAlanezi então deve considerar o uso do logcat do prompt de comando ou do windows powershell (melhor).
Dheeraj Bhaskar de

1
Eu apenas reinicio o Eclipse toda vez que isso acontece e sempre resolve o problema. geralmente acontece uma vez por dia, mas já estou acostumado a ficar desapontado com o eclipse ..
programador

2
@programmer não fique mais desapontado com o eclipse, mude para o Android Studio, meu amigo :)
Dheeraj Bhaskar

1
Para mim, usar um emulador em uma máquina remota reiniciar o eclipse não funciona. O Logcat nunca mostra nada, mas adb logcaté uma boa dica, funciona de forma positiva.
soger

12

Eu tive o mesmo problema ao usar o Android Studio e consegui contornar selecionando No Filtersna caixa de seleção no canto superior direito do LogCat. Ao fazer isso, comecei a receber todos os registros do Android em segundo plano no LogCat, incluindo minhas chamadas de registro perdidas.

insira a descrição da imagem aqui


9

Reinicie o Eclipse e verifique o gato do log será exibido.


6

Eu descobri que estava importando automaticamente com.sileria.Log (de algum projeto de biblioteca) em vez de android.util.Log , onde o último era o correto. Verifique suas importações também.


3

Percebi que o Eclipse às vezes lança uma exceção ao iniciar um aplicativo Android e, em seguida, o LogCat para de atualizar. Eu corrigi isso simplesmente reiniciando o Eclipse. Não tenho certeza se você já tentou isso e sei que está longe de ser uma solução ideal, mas suspeito que o plug-in do Eclipse ainda tem alguns bugs para resolver.


3

Caminho mais fácil:

Verifique na janela do logcat - botão PAUSE no canto SUPERIOR DIREITO || (Pausa no recebimento de novas mensagens logcat)

Poucos cliques + eventualmente reiniciar o eclipse (geralmente funciona no meu caso)


3

Eu precisava reiniciar o serviço adb com o comando adb usb

Antes disso, eu estava obtendo todo o log e capaz de depurar, mas não estava obtendo minhas próprias linhas de log (sim, estava obtendo o log do sistema associado ao meu aplicativo).


Eu também tenho isso - não obter linhas de registro próprias. Mas isso não ajudou :(
Ixx

2

Existem vários motivos pelos quais você pode não ver os logs, a maioria dos quais está listada abaixo. Aqui estão algumas etapas para verificar a maioria dos motivos:

  1. Certifique-se de não ter 'android: debuggable = "false"' em seu AndroidManifest.xml
  2. Certifique-se de que seu logcat não esteja pausado e certifique-se de que você está rolando para a parte inferior
  3. Seus filtros devem ser 'sem filtros' ou seu aplicativo atual
  4. Você tem o dispositivo correto selecionado na sua lista de dispositivos logcat
  5. Se você não estiver recebendo nenhuma mensagem, tente reiniciar o adb. Você pode fazer isso no Android Studio clicando no ícone 'reiniciar', logo após o ícone de impressão do logcat e se parece com uma seta curva verde saindo de uma caixa. Se você não vê-lo, passe o mouse sobre o '>>' que continua o menu de ícones quando o logcat for muito pequeno.

2

No Android Studio: Clique na seta verde apontando para a direita para reiniciar o registro; se não estiver visível, clique nos ícones >> para localizá-lo.


1

Também sou novato no Android-Eclipse. Aqui está o que foi necessário para eu fazer com que as mensagens LogCat fossem exibidas no Eclipse: 1: adicione isso à classe na qual a mensagem logcat é chamada: private static final String TAG = "MyActivity"; (pela documentação aqui )

2: adicione este Log.i (TAG, "inLayout - terminado"); quando você quer mostrar uma mensagem

Se o procedimento acima não funcionar, feche o Eclipse, reinicie-o e execute novamente o projeto.

Então, deve funcionar.


1

Há mais uma coisa a observar:

No lado superior direito do logcat, há uma tabela suspensa para filtrar mensagens por tipo. Certifique-se de que está no nível que você está procurando (se estiver no nível de declaração, provavelmente deixará seu logcat vazio).


1

Vá para o Gerenciador de Tarefas e elimine o processo adb.exe. Reinicie seu eclipse novamente.

ou

tente adb kill-server e, em seguida, o comando adb start-server .


1

Provavelmente não está correto, e um pouco mais, mas resolvi esse problema (Android Studio) usando este:

System.out.println("Some text here");

Como isso:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

Passei várias horas nesse caso. Eu vi apenas registros de teclas de toque. Nada mais. O problema era ... smarthphone. Depois de reiniciar estava OK. A desconexão do cabo causou o retorno do problema. Tive que reiniciá-lo novamente. Parece que a comunicação USB do Android não foi bem projetada.


Obrigado! Na verdade, era a configuração USB no menu rápido do telefone ... com relação à depuração de USB. Eu adquiri o hábito de mudar de Somente Carregamento para Transferir Arquivos. MAS, somente carregamento é o que fez o registro funcionar. Estou voltando à programação do Android depois de alguns anos longe, e isso estava realmente limitando minha curva de aprendizado.
wwfloyd

Então, eu estava obtendo apenas parte do registro ... tudo o que foi adicionado recentemente foi ignorado. Resolvi isso com Clean and Rerun, no Android Studio.
wwfloyd

1

CONSERTO RÁPIDO.

Apenas reinicie o eclipse

Funciona perfeitamente.


0

Usando o SDK 4.0.3, você deve selecioná-lo explicitamente em configurações de depuração> projeto> destino ou ele nunca será mostrado usando Eclipse Indigo (3.7). É claro que ocorre um reinício do eclipse.


0

Tive um problema para ver a saída de log simples no logcat também. Meu problema foi resolvido quando instalei o JDK mais recente. Acabei de configurar uma nova máquina de desenvolvimento e só tinha o JRE instalado e instalar o JDK funcionou para mim.


0

Nenhuma das outras respostas funcionou para mim, mas esta funcionou:

Eu removi meu projeto do meu espaço de trabalho e, em seguida, apaguei tudo que começou com um ponto (.settings, .project, etc.) da pasta do projeto. Então eu reimportei o projetado. Estou faltando algumas configurações e pontos de interrupção, mas pelo menos funciona.


0

Eu estava tendo esse problema e nada parecia funcionar até que movi a chamada de registro para um manipulador. Agora funciona sempre, não importa onde você esteja.


0

Cometi o erro de digitar um termo de pesquisa na caixa de pesquisa do logcat. Esqueci de excluí-lo e, portanto, não consegui ver os novos logs. Uma vez que eles não correspondem ao meu termo de pesquisa e não foram exibidos.


0

No meu caso, tive que remover esta linha:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

Da tag do aplicativo em meu arquivo de manifesto.


0

A melhor solução para mim foi reiniciar o servidor adb (enquanto eu Habilitei a integração do ADB no Android Studio - Ferramentas - Android - marcada). Para fazer isso rapidamente, criei um adbr.batarquivo dentro do android-sdk\platform-toolsdiretório (onde está adb.exelocalizado) com o seguinte:

adb kill-server
adb start-server

Como tenho essa pasta na variável de sistema PATH, sempre que preciso reiniciar adbdo Android Studio, posso escrever apenas no terminal adbre pronto.

Outra opção para fazer isso é através do Android Device Monitor na guia Dispositivos - Menu após clicar na pequena seta para a direita - Redefinir adb .


0

Para eclipse: 1) Vá para a perspectiva ddms. 2) Certifique-se de que o dispositivo correto esteja selecionado. 3) Se já estiver selecionado e não estiver exibindo os logs, reinicie o ABD. * Espero que isso resolva.


0

Eu reiniciei o serviço ADB também com "adb usb" e resolvi o problema para mim. Na verdade, apenas uma das minhas atividades não registrou mais. Todos os outros registraram coisas. Depois de reiniciar o adb, tudo funciona perfeitamente bem novamente. Para as outras pessoas que estão procurando por outra solução: adb kill-server, adb start-server em CLI geralmente corrigirá seu problema também.


0

faça seu aplicativo fechar, uma vez que isso iniciará o LogCat novamente ...

use isso para forçar o fechamento: D

setContentView(BIND_AUTO_CREATE);

0

algumas vezes o problema não é do pc, por outro lado IDE, ADB etc, mas surge do seu dispositivo que não envia logs para o ADB então se você tentou todas as formas mencionadas antes e ainda assim o seu logcat está vazio tente reiniciar o seu dispositivo e tente novamente . Eu tentei todas as maneiras mencionadas acima e nenhuma delas funcionou, mas após reiniciar meu telefone o logcat funcionou como mágica


Como verificar se o dispositivo é capaz de enviar logs para ADB?
JCarlosR de

@JCarlos tente reiniciar seu dispositivo se nenhuma das soluções acima funcionou
Code_Worm

O AndroidMonitor mostra as mensagens quando eu uso Loge executo o aplicativo no meu smartphone, mas ele não está funcionando no meu smartwatch. Eu estava procurando as configurações, mas tudo parece bom.
JCarlosR

0

Estou com esse problema e resolvi, String TAG sem espaço:

"minha tag" // notando mostrar
"my_tag" // está ok


0

No meu caso, apenas tive que adicionar um nome à String. Na primeira instância, eu só tinha um espaço entre os colchetes

private static final String TAG = " ";

mas depois de adicionar um nome funcionou perfeitamente.

private static final String TAG = "oncreate";

0

Após a atualização para o Android 3.6.1, tive esse problema várias vezes. A única coisa que funciona no meu caso é REINICIAR O DISPOSITIVO.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.