Android: Wie kann ich eine Variable auf der Eclipse-Konsole drucken?


Antworten:


117

System.out.printlnund Log.dbeide gehen zu LogCat, nicht zur Konsole.


1
Mit LibGDX und System.out.println wird die Konsole aufgerufen. Auf der Suche nach einer Möglichkeit, es in logcat zu integrieren, damit ich meine App auf einem tatsächlichen Gerät protokollieren / debuggen kann.
Madmenyo

26

Fenster-> Ansicht anzeigen-> Andere… -> Android-> LogCat


6

Ich bin neu in der Android-Entwicklung und mache dies:

1) Erstellen Sie eine Klasse:

import android.util.Log;

public final class Debug {
    private Debug () {}

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

Wenn Sie das Projekt beendet haben, löschen Sie die Klasse.

2) So drucken Sie eine Nachricht an LogCat:

Debug.out ("something");

3) Erstellen Sie einen Filter in der LogCat und schreiben Sie "info" in die Eingabe "by Log Tag". Alle Ihre Nachrichten werden hier geschrieben. :) :)

Tipp: Erstellen Sie einen weiteren Filter, um alle Fehler zu filtern und einfach zu debuggen.


8
Es ist keine gute Idee, Code wie diesen zu schreiben, da die Log-Klasse den meisten ... allen Android-Entwicklern vertraut ist. Indem Sie es in Ihre eigene Klasse einbinden und keine neuen Funktionen hinzufügen, verschleiern Sie lediglich die Bedeutung Ihres Codes für andere Personen als Sie.
Thomas Dignan

6

Das Schreiben des folgenden Codes zum Drucken auf LogCat funktioniert einwandfrei !!

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

druckt Partitur auf LogCat. Versuchen Sie dies


3

Ich denke, der Toast ist vielleicht eine gute Methode, um den Wert einer Variablen anzuzeigen!


1
Das Problem tritt bei Toast auf, wenn viele und schnelle Werte vorhanden sind, z. B. bei der Protokollierung von ax, y-Koordinaten in ACTION_MOVE. In solchen Fällen ist ein Bildschirmtext oder eine Protokollausgabe möglicherweise die bessere Lösung.
TechNyquist

1

Ok, Toast ist nicht komplex, aber es braucht ein Kontextobjekt, um zu funktionieren, es könnte sein MyActivity.this, dann können Sie schreiben:

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

Obwohl Toast eine UI-Ressource ist, sendet die Verwendung in einem anderen Thread als dem UI-Thread einen Fehler oder funktioniert einfach nicht. Wenn Sie eine Variable drucken möchten, name.toString()fügen Sie die Variable ein und verknüpfen Sie sie mit dem gewünschten Text im Parameter maketext String. )


0

Toast ist eine schlechte Idee, es ist viel zu "komplex", um den Wert einer Variablen zu drucken. Verwenden Sie log oder sop, und wie bereits erwähnt, geht die Ausgabe an logcat. Es ist nur sinnvoll, wenn Sie diese Informationen dem Endbenutzer zugänglich machen möchten ...


0

Wenn der Code, den Sie testen, relativ einfach ist, können Sie einfach ein reguläres Java-Projekt im Paket-Explorer erstellen und den Code kopieren, ausführen und dort reparieren und dann wieder in Ihr Android-Projekt kopieren.

Die Tatsache, dass System.out umgeleitet wird, ist ziemlich ärgerlich, um einfache Methoden schnell zu testen, aber das ist die einfachste Lösung, die ich gefunden habe, anstatt den Geräteemulator ausführen zu müssen, um zu sehen, ob ein regulärer Ausdruck funktioniert.


0

Übrigens, falls Sie nicht wissen, wo sich Ihr JSONObject genau in Ihrem JSONArray befindet, empfehle ich die Verwendung des folgenden Codes: (Ich habe angenommen, dass "jsonArray" Ihre Hauptvariable mit allen Daten ist, und ich suche die genaue Objekt innerhalb des Arrays mit gleicher Funktion)

    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;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.