Logcat no muestra mis llamadas de registro

114

Soy un novato total en la programación de Android y quería aprender a depurar mis aplicaciones. Parece que no puedo mostrar mis llamadas Log.i | d | v en LogCat.

Aquí está el código que estoy usando. Como puede ver, he definido una constante LOG_TAG, pero parece que no puedo encontrarla en LogCat. También he importado android.util.Log Y me he asegurado de que en mi AndroidManifest tengo "depurable" configurado en TRUE.

También he comprobado http://developer.android.com/reference/android/util/Log.html sin suerte para resolver este problema.

¿Qué estoy haciendo mal? ¿Estoy siquiera mirando en el lugar correcto? Intenté usar la perspectiva DDMS y Debug también sin suerte. Cualquier ayuda a este novato será muy apreciada. Gracias.

Mi entorno: Windows XP IDE = Eclipse Versión: 3.6.1, Id. De compilación: M20100909-0800 Emulador = apuntar a android sdk 2.1 api 7

// código muy básico de HELLO World con un par de llamadas 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");
    }
}
Cavachon
fuente
No parece que esté haciendo nada mal, ¿está seguro de que se está iniciando su actividad? ¿Tiene algún filtro configurado en la vista de logcat? ¿Probaste la versión de línea de comandos de logcat? (adb logcat)
Cheryl Simon
Sí, probé la línea de comando y la salida a un archivo txt y todavía no pude encontrarlo. Sé que la actividad comenzó porque veo el mensaje "Hola mundo" en el emulador. Intenté ver el logcat con y sin filtros y todavía no tuve suerte.
Cavachon
Pruebe la línea de comando adb logcat y no filtre nada primero. Estoy bastante seguro de que su código funciona y se imprime en el registro.
Heikki Toivonen
¿LogCat funciona en absoluto? Por ejemplo, ¿ve entradas de registro de otras aplicaciones (aplicaciones del sistema, por ejemplo)?
Vit Khudenko
Podría ser específico del dispositivo. en algún momento necesitamos habilitar los registros del menú oculto del teléfono stackoverflow.com/a/43999262/2783229
nitesh

Respuestas:

143

Cuando utilice Eclipse, en la perspectiva de DDMS, asegúrese de que el dispositivo correcto (probablemente emulator-xxxx) esté seleccionado y resaltado. Solo entonces obtendrá la salida de logcat en la vista de logcat.

Además, el complemento de Android es un poco peculiar y, a veces, solo muestra la última línea en la vista de logcat. Si esto sucede, intente borrar el registro. Después de eso, debería obtener todas las entradas de registro nuevamente (funciona para mí de todos modos).

ddewaele
fuente
Sí, todos los problemas que he tenido también. Si se desplaza dentro de la vista Logcat, no se desplazará automáticamente con futuras actualizaciones hasta que vuelva a la parte inferior.
Mike Yockey
2
¡Decir ah! Estuve luchando contra esto por un tiempo. Abrí DDMS y tuve un antiguo emulador seleccionado. Es extraño por qué no está predeterminado en el emulador que se está ejecutando actualmente.
Will Curran
La respuesta de ddewaele resolvió mi problema, solo necesita dejar a LogCat donde debería estar su enfoque. Como nota al margen, no tiene que cambiar la perspectiva para abrir el menú de dispositivos.Simplemente vaya a Ventana >> Mostrar vista >> Otro >> Android >> Dispositivos para abrir el panel de dispositivos
Jay
@yock Creo que es intencional, ya que se supone que quieres detenerte y leer en el punto al que te desplazaste.
Michael Mior
1
Jajaja soy tan estúpido que no sé qué es DDMS e incluso dónde encontrarlo.
Neon Warge
71

Si todo lo demás falla:

Hice todas las cosas anteriores y no pude averiguar qué estaba mal,

Prueba con:

adb logcat

para darme cuenta de que mis entradas estaban de hecho en logcat, pero eran peculiaridades de adt.

Reparar:

Reiniciar eclipse

Esto fue lo único que lo solucionó.

Dheeraj Bhaskar
fuente
1
Esto funciona, pero no puedo seguir reiniciando Eclipse ya que este problema me ocurre mucho. ¿Alguien tiene una solución mejor?
Khaled Alanezi
@KhaledAlanezi entonces debería considerar usar logcat desde el símbolo del sistema o Windows PowerShell (mejor).
Dheeraj Bhaskar
1
Simplemente reinicio eclipse cada vez que esto sucede y siempre resuelve el problema. por lo general sucede una vez al día, pero ya estoy acostumbrado a decepcionarme por el eclipse ..
programador
2
@programmer no se decepcionará más con eclipse, muévase a Android Studio, amigo mío :)
Dheeraj Bhaskar
1
Para mí, usar un emulador en una máquina remota, reiniciar eclipse no funciona, Logcat nunca muestra nada, pero adb logcates un buen consejo, funciona tan bien.
soger
12

Tuve el mismo problema al usar Android Studio y logré desplazarme seleccionando No Filtersen el cuadro de selección en la esquina superior derecha de LogCat. Al hacer esto, comencé a recibir todos los registros de Android en segundo plano en LogCat, incluidas mis llamadas de registro faltantes.

ingrese la descripción de la imagen aquí

CIRCULO
fuente
9

Reinicie Eclipse y se mostrará el gato de registro de verificación.

anjaneya
fuente
6

Descubrí que estaba importando automáticamente com.sileria.Log (de algún proyecto de biblioteca) en lugar de android.util.Log , donde este último era el correcto. Compruebe también sus importaciones.

Marek Walasek
fuente
3

He notado que Eclipse a veces lanzará una excepción al iniciar una aplicación de Android, luego LogCat deja de actualizarse. Lo he corregido simplemente reiniciando Eclipse. No estoy seguro de si lo ha intentado y sé que está lejos de ser una solución óptima, pero sospecho que el complemento Eclipse todavía tiene algunos errores que solucionar.

Mike Yockey
fuente
3

La manera más fácil:

Compruebe en la ventana de Logcat - Botón PAUSA de la esquina SUPERIOR DERECHA || (Pausar la recepción de nuevos mensajes logcat)

Pocos clics + eventualmente reiniciar eclipse (generalmente funciona en mi caso)

fider
fuente
3

Necesitaba reiniciar el servicio adb con el comando adb usb

Antes de esto, estaba obteniendo todos los registros y podía depurar, pero no obtenía mis propias líneas de registro (sí, estaba obteniendo el registro del sistema asociado con mi aplicación).

Jim Rush
fuente
También tengo esto: no obtengo líneas de registro propias. Pero esto no ayudó :(
Ixx
2

Hay varias razones por las que es posible que no vea los registros, la mayoría de las cuales se enumeran a continuación. Estos son algunos pasos para verificar la mayoría de las razones:

  1. Asegúrese de no tener 'android: debuggable = "false"' en su AndroidManifest.xml
  2. Asegúrese de que su logcat no esté en pausa y asegúrese de que se desplaza hasta la parte inferior
  3. Tus filtros deben ser 'sin filtros' o tu aplicación actual
  4. Tiene el dispositivo correcto seleccionado en su lista de dispositivos logcat
  5. Si no recibe ningún mensaje, intente reiniciar adb. Puede hacerlo desde Android Studio haciendo clic en el ícono de 'reiniciar', que está justo después del ícono de impresión de logcat y parece una flecha curva verde que sale de una caja. Si no lo ve, pase el mouse sobre el '>>' que continúa el menú de iconos cuando el logcat es demasiado pequeño.
David Ljung Madison Stellar
fuente
2

En Android Studio: haga clic en la flecha verde que apunta a la derecha para reiniciar el registro; si no está visible, haga clic en los iconos >> para localizarlo.

Arma X
fuente
1

También soy un novato en Android-Eclipse. Esto es lo que necesité para que los mensajes LogCat se mostraran en Eclipse: 1: agregue esto a la clase en la que se llama el mensaje logcat: private static final String TAG = "MyActivity"; (según la documentación aquí )

2: agregue este Log.i (TAG, "inLayout - terminado"); cuando estés donde quieras mostrar un mensaje

Si lo anterior no funciona, apague Eclipse, reinícielo y vuelva a ejecutar su proyecto.

Entonces debería funcionar.

Jazzmine
fuente
1

Hay una cosa más a tener en cuenta:

En la parte superior derecha del logcat hay una tabla desplegable para filtrar mensajes por tipo. Asegúrese de que esté en el nivel que está buscando (si estará en el nivel de afirmación, probablemente dejará su logcat vacío).

Itai Hanski
fuente
1

Vaya al Administrador de tareas y finalice el proceso adb.exe. Reinicia tu eclipse nuevamente.

o

intente adb kill-server y luego adb start-server comando.

Arghya
fuente
1

Probablemente no sea correcto, y un poco más, pero resolví este problema (Android Studio) usando esto:

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

Me gusta esto:

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

Pasé varias horas en tal caso. Solo vi registros de teclas táctiles. Nada mas. El problema era ... teléfono inteligente. Después de reiniciar estaba bien. La desconexión del cable provocó que el problema volviera. Tuve que reiniciarlo nuevamente. Parece que la comunicación USB de Android no está bien diseñada.

Alex Burton
fuente
¡Gracias! En realidad, fue la configuración de USB en el menú rápido del teléfono ... con respecto a la depuración de USB. Me había acostumbrado a cambiar de Solo carga a Transferir archivos. PERO, solo cargar es lo que hizo que el registro funcionara. Estoy volviendo a la programación de Android después de unos años, y esto realmente obstaculizó mi curva de aprendizaje.
wwfloyd
Entonces, solo estaba obteniendo parte del registro ... todo lo agregado recientemente se ignoró. Lo solucioné con Limpiar y Volver a ejecutar, en Android Studio.
wwfloyd
1

ARREGLO RAPIDO.

Solo reinicia el eclipse

Funciona perfecto.

Ali Akram
fuente
0

Con el SDK 4.0.3, debe seleccionarlo explícitamente en configuraciones de depuración> proyecto> destino o, de lo contrario, nunca se mostrará con Eclipse Indigo (3.7). Por supuesto, se produce un reinicio del eclipse.

Luis Robles
fuente
0

También tuve un problema para ver una salida de registro simple en logcat. Mi problema se resolvió cuando instalé el último JDK. Acabo de configurar una nueva máquina de desarrollo y solo tenía el JRE instalado y la instalación del JDK funcionó para mí.

Jeff LaFay
fuente
0

Ninguna de las otras respuestas funcionó para mí, pero esta sí:

Eliminé mi proyecto de mi espacio de trabajo, luego eliminé todo lo que comenzara con un punto (.settings, .project, etc.) de la carpeta del proyecto. Luego volví a importar el proyectado. Me faltan algunas configuraciones y puntos de interrupción, pero al menos funciona.

rmooney
fuente
0

Había estado experimentando este problema y nada parecía funcionar hasta que moví la llamada de registro a un controlador. Ahora funciona todo el tiempo, sin importar dónde se encuentre.

a54studio
fuente
0

Cometí el error de escribir un término de búsqueda en el cuadro de búsqueda de logcat. Olvidé eliminarlo y, por lo tanto, no pude ver los nuevos registros. Dado que no coinciden con mi término de búsqueda y no se muestran.

Pritesh Desai
fuente
0

En mi caso, tuve que eliminar esta línea:

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

Desde la etiqueta de aplicación en mi archivo de manifiesto.

nmvictor
fuente
0

La mejor solución para mí fue reiniciar el servidor adb (mientras que he habilitado la integración de ADB en el estudio de Android - Herramientas - Android - marcado). Para hacer esto rápidamente, creé un adbr.batarchivo dentro del android-sdk\platform-toolsdirectorio (donde se adb.exeencuentra) con esto dentro:

adb kill-server
adb start-server

Debido a que tengo esta carpeta en la variable del sistema PATH, siempre que necesito reiniciar adbdesde el estudio de Android, puedo escribir solo en la terminal adbry listo.

Otra opción para hacer esto es a través de Android Device Monitor en la pestaña Dispositivos - Menú después de hacer clic en la flecha pequeña hacia la derecha - Restablecer adb .

Atiris
fuente
0

Para eclipse: 1) Vaya a la perspectiva ddms. 2) Asegúrese de que esté seleccionado el dispositivo correcto. 3) Si ya está seleccionado y no muestra registros, reinicie ABD. * Espero que esto se resuelva.

Karthik
fuente
0

También reinicié el servicio ADB con "adb usb" y solucioné el problema. De hecho, solo una de mis actividades ya no se registró. Todos los demás registraron cosas. Después de reiniciar adb, todo vuelve a funcionar a la perfección. Para las otras personas que están buscando otra solución: adb kill-server, adb start-server en CLI a menudo también solucionará su problema.


fuente
0

haga que su aplicación se cierre por la fuerza una vez que se inicie LogCat de nuevo ...

use esto para forzar el cierre: D

setContentView(BIND_AUTO_CREATE);
user4254398
fuente
0

Algunas veces, el problema no es de la PC, por otro lado, IDE, ADB, etc., pero surge de su dispositivo que no envía registros a ADB, por lo que si intentó todas las formas mencionadas anteriormente y aún su logcat está vacío, intente reiniciar su dispositivo e intentarlo de nuevo . Intenté todas las formas mencionadas anteriormente y ninguna de ellas funcionó, pero después de reiniciar mi teléfono, el logcat funcionó como magia

Code_Worm
fuente
¿Cómo verificar si el dispositivo puede enviar registros a ADB?
JCarlosR
@JCarlos intente reiniciar su dispositivo si ninguna de las soluciones anteriores funcionó
Code_Worm
AndroidMonitor muestra los mensajes cuando uso Logy ejecuto la aplicación desde mi teléfono inteligente, pero no funciona desde mi reloj inteligente. Estaba buscando la configuración pero todo parece estar bien.
JCarlosR
0

Tengo este problema y lo solucioné, String TAG sin espacio:

"my tag" // notando mostrar
"my_tag" // está bien

jahangiri
fuente
0

En mi caso, solo tuve que agregar un nombre al String. En primera instancia, solo tenía un espacio entre los corchetes.

private static final String TAG = " ";

pero después de agregar un nombre funcionó perfectamente.

private static final String TAG = "oncreate";
Populus_Tremula
fuente
0

Después de actualizar a Android 3.6.1, he experimentado este problema varias veces. Lo único que funciona en mi caso es REINICIAR EL DISPOSITIVO.

Pablo Alfonso
fuente