Android: Tutulma konsolunda bir değişkeni nasıl yazdırabilirim?


Yanıtlar:


117

System.out.printlnve Log.dikisi de Konsol'a değil LogCat'e gider.


1
LibGDX ve System.out.println kullanımı konsola gider. Uygulamamı gerçek bir cihazda günlüğe kaydedebilmem / hata ayıklayabilmem için bunu logcat'e almanın bir yolunu arıyorum.
Madmenyo

26

Pencere-> Görünümü Göster-> Diğer… -> Android-> LogCat


6

Android geliştirmede yeniyim ve bunu yapıyorum:

1) Bir sınıf oluşturun:

ithal android.util.Log;

public final class Debug {
    özel Hata Ayıklama () {}

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

Projeyi bitirdiğinizde sınıfı silin.

2) LogCat yazısına bir mesaj yazdırmak için:

Debug.out ("something");

3) LogCat'de bir filtre oluşturun ve girişe "Günlük Etiketine göre" "bilgi" yazın. Tüm mesajlarınız buraya yazılacaktır. :)

İpucu: Tüm hataları kolayca ayıklamak üzere filtrelemek için başka bir filtre oluşturun.


8
Böyle bir kod yazmak iyi bir fikir değildir çünkü Log sınıfı çoğu android geliştiricisine aşinadır. Bunu kendi sınıfınıza sararak ve yeni işlevler eklemeyerek, yaptığınız tek şey kodunuzun anlamını kendiniz dışındaki kişiler için belirsiz hale getirmek.
Thomas Dignan

6

LogCat üzerinde herhangi bir şey yazdırmak için aşağıdaki kodu yazmak mükemmel bir şekilde çalışıyor !!

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

LogCat üzerinde puan yazdırır.


3

Bence tost, bir değişkenin değerini göstermek için iyi bir yöntem olabilir!


1
Toast ile, değerler çok ve hızlı olduğunda, ax, y koordinatları ACTION_MOVE'da günlüğe kaydedildiğinde ortaya çıkar. Bu gibi durumlarda bir ekran metni veya Günlük çıktısı daha iyi bir çözüm olabilir.
TechNyquist

1

Tamam, Toast karmaşık değildir, ancak çalışması için bir bağlam nesnesine ihtiyaç duyar, olabilir MyActivity.this, sonra yazabilirsiniz:

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

Toast bir UI kaynağı olmasına rağmen, onu ui iş parçacığından farklı başka bir iş parçacığında kullanmak bir hata gönderir veya çalışmaz Bir değişken yazdırmak istiyorsanız, değişkeni name.toString()ve bunu istediğiniz metinle maketext String parametresine koyun; )


0

tost kötü bir fikir, bir değişkenin değerini yazdırmak çok fazla "karmaşık". log veya sop kullanın ve daha önce de belirtildiği gibi, bunların çıktıları logcat'e gider. sadece bu bilgiyi son kullanıcıya ifşa etmek istiyorsanız mantıklı ...


0

Test ettiğiniz kod nispeten basitse, Paket Gezgini'nde normal bir Java projesi oluşturabilir ve kodu kopyalayabilir, çalıştırabilir ve orada düzeltebilir, ardından tekrar Android projenize kopyalayabilirsiniz.

System.out'un yeniden yönlendirilmiş olması, basit yöntemleri hızlı bir şekilde test etmek için oldukça can sıkıcıdır, ancak bu, normal bir ifadenin çalışıp çalışmadığını görmek için aygıt öykünücüsünü çalıştırmak zorunda kalmak yerine bulduğum en kolay çözümdür.


0

Bu arada, JSONObject'inizin JSONArray'inizdeki tam konumunu bilmiyorsanız , aşağıdaki kodu kullanmanızı öneririm: ("jsonArray" in tüm verilerle birlikte ana değişkeniniz olduğunu varsaydım ve tam olarak eşittir işlevine sahip dizi içindeki nesne)

    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;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.