Android: come posso stampare una variabile sulla console di eclipse


Risposte:


117

System.out.printlned Log.dentrambi vanno a LogCat, non alla console.


1
Utilizzando LibGDX e System.out.println va alla console. Sto cercando un modo per inserirlo in logcat in modo da poter accedere / eseguire il debug della mia app su un dispositivo reale.
Madmenyo

26

Finestra-> Mostra vista-> Altro ... -> Android-> LogCat


6

Sono nuovo nello sviluppo di Android e lo faccio:

1) Crea una classe:

import android.util.Log;

public final class Debug {
    debug privato () {}

    public static void out (Object msg) {
        Log.i ("info", msg.toString ());
    }
}

Quando finisci il progetto elimina la classe.

2) Per stampare un messaggio su LogCat scrivi:

Debug.out ("something");

3) Crea un filtro nel LogCat e scrivi "info" nell'ingresso "by Log Tag". Tutti i tuoi messaggi verranno scritti qui. :)

Suggerimento: crea un altro filtro per filtrare tutti gli errori per eseguire facilmente il debug.


8
Non è una buona idea scrivere codice come questo perché la classe Log è familiare alla maggior parte ... a tutti gli sviluppatori Android. Avvolgendolo nella tua classe e non aggiungendo nuove funzionalità, tutto ciò che fai è oscurare il significato del tuo codice a persone diverse da te.
Thomas Dignan

6

Scrivere il codice seguente per stampare qualsiasi cosa su LogCat funziona perfettamente !!

int score=0;
score++;
System.out.println(score);

stampa il punteggio su LogCat. Prova questo


3

Penso che il toast sia forse un buon metodo per mostrare il valore di una variabile!


1
Il problema si presenta con Toast quando i valori sono molti e veloci, come la registrazione delle coordinate ax, y su ACTION_MOVE. In questi casi, un testo sullo schermo o un output del registro potrebbe essere una soluzione migliore.
TechNyquist

1

Ok, Toast non è complesso ma ha bisogno di un oggetto contesto per funzionare, potrebbe essere MyActivity.this, quindi puoi scrivere:

Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();

Sebbene Toast sia una risorsa dell'interfaccia utente, quindi utilizzarlo in un altro thread diverso dal thread dell'interfaccia utente, invierà un errore o semplicemente non funzionerà. Se si desidera stampare una variabile, inserire la variabile name.toString()e concatela con il testo desiderato nel parametro String maketext; )


0

toast è una cattiva idea, è troppo "complesso" per stampare il valore di una variabile. usa log o sop e, come già detto drawonward, il loro output va a logcat. ha senso solo se vuoi esporre queste informazioni all'utente finale ...


0

Se il codice che stai testando è relativamente semplice, puoi semplicemente creare un normale progetto Java in Package Explorer e copiare il codice, eseguirlo e correggerlo lì, quindi copiarlo di nuovo nel tuo progetto Android.

Il fatto che System.out venga reindirizzato è piuttosto fastidioso per testare rapidamente metodi semplici, ma questa è la soluzione più semplice che ho trovato, piuttosto che dover eseguire l'emulatore di dispositivo solo per vedere se un'espressione regolare funziona.


0

A proposito, nel caso in cui non sai qual è la posizione esatta del tuo JSONObject all'interno del tuo JSONArray, ti suggerisco di utilizzare il seguente codice: (presumo che "jsonArray" sia la tua variabile principale con tutti i dati, e sto cercando l'esatto oggetto all'interno dell'array con funzione uguale)

    JSONArray list = new JSONArray(); 
    if (jsonArray != null){
        int len = jsonArray.length();
        for (int i=0;i<len;i++)
        { 
            boolean flag;
            try {
                flag = jsonArray.get(i).toString().equals(obj.toString());
                //Excluding the item at position
                if (!flag) 
                {
                    list.put(jsonArray.get(i));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }  
        } 
    }
    jsonArray = list;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.