Android: как распечатать переменную на консоли eclipse


Ответы:


117

System.out.printlnи Log.dоба идут в LogCat, а не в консоль.


1
Использование LibGDX и System.out.println переходит в консоль. Ищу способ добавить его в logcat, чтобы я мог регистрировать / отлаживать свое приложение на реальном устройстве.
Madmenyo


6

Я новичок в разработке Android и делаю следующее:

1) Создайте класс:

import android.util.Log;

public final class Debug {
    частная отладка () {}

    public static void out (Object msg) {
        Log.i ("информация", msg.toString ());
    }
}

Когда закончите проект, удалите класс.

2) Чтобы распечатать сообщение в LogCat, напишите:

Debug.out ("something");

3) Создайте фильтр в LogCat и напишите «info» во вводе «by Log Tag». Все ваши сообщения будут написаны здесь. :)

Совет: создайте еще один фильтр, чтобы отфильтровать все ошибки и упростить отладку.


8
Писать такой код - не лучшая идея, потому что класс Log знаком большинству ... всем разработчикам Android. Оборачивая его в свой собственный класс и не добавляя новых функций, все, что вы делаете, - это скрываете смысл своего кода от других людей, кроме вас самих.
Thomas Dignan

6

Написание следующего кода для печати чего-либо в LogCat отлично работает !!

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

печатает счет на LogCat.


3

Я думаю, что тост может быть хорошим способом показать значение переменной!


1
Проблема возникает с Toast, когда значений много и быстро, например, координаты ax, y записываются в ACTION_MOVE. В таких случаях текст на экране или вывод журнала могут быть лучшим решением.
TechNyquist

1

Хорошо, Toast не сложный, но для работы ему нужен объект контекста, может быть MyActivity.this, тогда вы можете написать:

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

Хотя Toast является ресурсом пользовательского интерфейса, его использование в другом потоке, отличном от потока пользовательского интерфейса, отправит сообщение об ошибке или просто не будет работать. Если вы хотите распечатать переменную, поместите переменную name.toString()и объедините ее с нужным текстом в параметре maketext String; )


0

тост - плохая идея, слишком "сложно" распечатать значение переменной. используйте log или sop, и, как уже было сказано, их вывод поступает в logcat. это имеет смысл только в том случае, если вы хотите предоставить эту информацию конечному пользователю ...


0

Если код, который вы тестируете, относительно прост, вы можете просто создать обычный проект Java в проводнике пакетов и скопировать код, запустить его и исправить там, а затем скопировать обратно в свой проект Android.

Тот факт, что System.out перенаправлен, довольно раздражает для быстрого тестирования простых методов, но это самое простое решение, которое я нашел, вместо того, чтобы запускать эмулятор устройства, чтобы увидеть, работает ли регулярное выражение.


0

Кстати, если вы не знаете, где находится ваш JSONObject внутри JSONArray, я предлагаю использовать следующий код: (Я предположил, что «jsonArray» - ваша основная переменная со всеми данными, и я ищу точное объект внутри массива с функцией равенства)

    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;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.