Android: Jak mogę wydrukować zmienną w konsoli eclipse


Odpowiedzi:


117

System.out.printlni Log.doba idą do LogCat, a nie do konsoli.


1
Korzystanie z LibGDX i System.out.println przechodzi do konsoli. Szukam sposobu na umieszczenie go w logcat, abym mógł zalogować / debugować moją aplikację na rzeczywistym urządzeniu.
Madmenyo


6

Jestem nowy w programowaniu na Androida i robię to:

1) Utwórz klasę:

import android.util.Log;

public final class Debug {
    prywatny debug () {}

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

Po zakończeniu projektu usuń klasę.

2) Aby wydrukować wiadomość do LogCat napisz:

Debug.out ("something");

3) Utwórz filtr w LogCat i wpisz „info” w polu „by Log Tag”. Wszystkie Twoje wiadomości zostaną zapisane tutaj. :)

Wskazówka: utwórz kolejny filtr, aby odfiltrować wszystkie błędy i ułatwić debugowanie.


8
Pisanie takiego kodu nie jest dobrym pomysłem, ponieważ klasa Log jest znana większości ... wszystkich programistów Androida. Poprzez umieszczenie go we własnej klasie i nie dodawanie nowych funkcji, jedyne, co robisz, to zaciemnianie znaczenia swojego kodu innym osobom niż ty.
Thomas Dignan,

6

Pisanie poniższego kodu w celu wydrukowania czegokolwiek w LogCat działa doskonale !!

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

wypisuje wynik w LogCat. Spróbuj tego


3

Myślę, że toast może być dobrą metodą pokazania wartości zmiennej!


1
Problem pojawia się w przypadku Toast, gdy wartości są duże i szybkie, takie jak współrzędne ax, y rejestrowane w ACTION_MOVE. W takich przypadkach tekst na ekranie lub dane wyjściowe dziennika mogą być lepszym rozwiązaniem.
TechNyquist

1

Ok, Toast nie jest skomplikowany, ale potrzebuje obiektu kontekstowego do działania, może być MyActivity.this, wtedy możesz napisać:

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

Chociaż Toast jest zasobem interfejsu użytkownika, to użycie go w innym wątku innym niż wątek ui spowoduje wysłanie błędu lub po prostu nie zadziała. Jeśli chcesz wydrukować zmienną, umieść zmienną name.toString()i połącz ją z tekstem, który chcesz w parametrze maketext String; )


0

toast to zły pomysł, jest zbyt „skomplikowany”, aby wydrukować wartość zmiennej. użyj log lub sop i jak już wspomniano, ich wyjście trafia do logcat. ma to sens tylko wtedy, gdy chcesz ujawnić te informacje użytkownikowi końcowemu ...


0

Jeśli testowany kod jest stosunkowo prosty, możesz po prostu utworzyć zwykły projekt Java w Eksploratorze pakietów i skopiować kod, uruchomić go i tam naprawić, a następnie skopiować z powrotem do projektu systemu Android.

Fakt, że System.out jest przekierowywany, jest dość irytujący, jeśli chodzi o szybkie testowanie prostych metod, ale jest to najłatwiejsze rozwiązanie, jakie znalazłem, zamiast konieczności uruchamiania emulatora urządzenia, aby sprawdzić, czy wyrażenie regularne działa.


0

Przy okazji, jeśli nie wiesz jaka jest dokładna lokalizacja twojego JSONObject w twoim JSONArray sugeruję użycie następującego kodu: (założyłem że "jsonArray" jest twoją główną zmienną ze wszystkimi danymi i szukam dokładnego obiekt wewnątrz tablicy z funkcją equals)

    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;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.