Quiero imprimir algo en la consola, para poder depurarlo. Pero por alguna razón, nada se imprime en mi aplicación de Android.
¿Cómo depuro entonces?
public class HelloWebview extends Activity {
WebView webview;
private static final String LOG_TAG = "WebViewDemo";
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl("http://example.com/");
System.out.println("I am here");
}
Respuestas:
Corrección:
En el emulador y la mayoría de los dispositivos
System.out.println
se redirige a LogCat y se imprime usandoLog.i()
. Esto puede no ser cierto en versiones de Android muy antiguas o personalizadas.Original:
No hay una consola a la que enviar los mensajes, por lo que los
System.out.println
mensajes se pierden. De la misma manera, esto sucede cuando ejecuta una aplicación Java "tradicional" conjavaw
.En cambio, puedes usar la clase de Android
Log
:Luego puede ver el registro en la vista Logcat en Eclipse o ejecutando el siguiente comando:
Es bueno acostumbrarse a mirar la salida de logcat, ya que también es donde se muestran los rastros de pila de las excepciones no capturadas.
La primera entrada a cada llamada de registro es la etiqueta de registro que identifica la fuente del mensaje de registro. Esto es útil ya que puede filtrar la salida del registro para mostrar solo sus mensajes. Para asegurarse de que sea coherente con su etiqueta de registro, probablemente sea mejor definirla una vez como un
static final String
lugar.Hay cinco métodos de una letra
Log
correspondientes a los siguientes niveles:e()
- Errorw()
- Advertenciai()
- Informaciónd()
- Depuraciónv()
- detalladowtf()
- Qué terrible fallaLa documentación dice lo siguiente sobre los niveles :
fuente
Usa la clase Log . Salida visible con LogCat
fuente
Si lo hace Si está utilizando el emulador, se mostrará en la vista Logcat debajo de la
System.out
etiqueta. Escribe algo y pruébalo en tu emulador.fuente
Por supuesto, para ver el resultado en logcat, debe establecer el nivel de registro al menos en "Información" ( nivel de registro en logcat ); de lo contrario, como me sucedió a mí, no verá su salida.
fuente
si realmente necesita System.out.println para trabajar (por ejemplo, se llama desde una biblioteca de terceros). simplemente puede usar la reflexión para cambiar el campo en System.class:
Clase RedirectLogOutputStream:
fuente
no se muestra en su aplicación ... está debajo del logcat de su emulador
fuente
No hay lugar en su teléfono donde pueda leer el
System.out.println();
En cambio, si desea ver el resultado de algo, mire su
logcat/console
ventana o haga que aparezca unaToast
o unaSnackbar
(si está en un dispositivo más nuevo) en la pantalla del dispositivo con el mensaje :) Eso es lo que hago cuando tengo que verificar por ejemplo, donde va en unswitch case
código! Diviértete codificando! :)fuente
Android Monitor
y luegologcat
, veo muchos mensajes que se imprimen constantemente ... ¿Se supone que es así? Entonces, ¿cómo vería mis propios mensajes de depuración?System.out.println ("...") se muestra en el monitor de Android en Android Studio
fuente
Dejaré esto para otros visitantes, ya que para mí fue algo acerca de que el hilo principal no puede hacerlo
System.out.println
.Uso:
LogUtil.println("This is a string");
fuente
Recientemente noté el mismo problema en Android Studio 3.3. Cerré los otros proyectos de estudio de Android y Logcat comenzó a trabajar. La respuesta aceptada arriba no es lógica en absoluto.
fuente