Как отлаживать Android в Eclipse

Попробуйте следующее:

  1. Создайте приложение HelloWorld.

  2. Добавьте оператор журнала в конец onCreate:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d("HelloWorldActivity.onCreate()", "setContentView() completed");
    }
  
  1. Поместите точку останова в оператор журнала.

  2. Запустите приложение в эмуляторе и обратите внимание, что оно работает, и сделайте шаг, чтобы увидеть запись журнала в окне LogCat Eclipse. .

  3. Измените HelloWorldActivity, чтобы он продолжал ListActivity вместо Activity.

     открытый класс HelloWorldActivity расширяет ListActivity {
    
  4. Снова запустите приложение в эмуляторе и обратите внимание, что оно не может достичь оператора журнала.

Мой вопрос НЕ в том, почему это не удается. У меня вопрос: как бы вы отладили этот сбой? Все, что я вижу на панели отладки Eclipse, - это исключение RuntimeException. Я вижу, что в LogCat есть куча сообщений, но она огромна, и я ее искал, но не могу найти ничего, чтобы указать, что не так или где в моем коде произошло исключение. Я не могу найти способ отобразить сообщение внутри RuntimeException или трассировку стека, чтобы узнать, какая строка кода инициировала исключение.

Я полагаю, что должны быть более эффективные способы использования инструментов для поиска ошибок, но я новичок и, кажется, не могу придумать лучшего способа отладки, кроме помещения всего, что я кодирую, в try / catch. Я ожидал найти сообщение в LogCat, сгенерированное выбросом исключения. Я ожидал, что окно отладки позволит вам проверить содержимое исключения. Я не говорю, что таких методов не существует, я говорю, что мне трудно понять, как новичку, как отлаживать, и спрашивать, какие методы существуют и как их использовать?

Итак, проще говоря:

  • Как бы вы нашли эту ошибку, если бы вы еще не знали, что ее вызывает?
  • Какие методы вы бы использовали, чтобы выяснить первопричину?
  • Как бы вы изучили детали исключения?
  • Как правило, как вы обнаруживаете проблемы в коде Android с помощью Eclipse?

Приветствуются многочисленные предложения и обсуждения. :)

Я бы добавил содержимое моего LogCat, но оно настолько велико, что ' s не разумно. Вы должны легко воспроизвести это самостоятельно, поэтому я не упомянул об этом. Возможно, что-то есть в LogCat, чтобы помочь мне, но поскольку он такой большой даже при запуске небольшой программы, мне понадобится подсказка о том, что искать и как интерпретировать это при попадании в исключение, созданное из вызова API. Я вижу другие сообщения, в которых говорится, что что-то должно быть в LogCat, что, хотя может быть правдой, я ничего не нахожу. Если вы считаете, что что-то должно быть в LogCat, запустите тест самостоятельно и скопируйте в свой ответ строки, которые я должен найти.

Спасибо.

========

Краткий список методов на данный момент выглядит следующим образом:

Инвазивные методы: настолько велика, что даже при запуске небольшой программы мне понадобится подсказка о том, что искать и как ее интерпретировать при возникновении исключения, созданного из вызова API. Я вижу другие сообщения, в которых говорится, что что-то должно быть в LogCat, что, хотя может быть правдой, я ничего не нахожу. Если вы считаете, что что-то должно быть в LogCat, запустите тест самостоятельно и скопируйте в свой ответ строки, которые я должен найти.

Спасибо.

========

Краткий список методов на данный момент выглядит следующим образом:

Инвазивные методы: настолько велика, что даже при запуске небольшой программы мне понадобится подсказка о том, что искать и как ее интерпретировать при возникновении исключения, созданного из вызова API. Я вижу другие сообщения, в которых говорится, что что-то должно быть в LogCat, что, хотя может быть правдой, я ничего не нахожу. Если вы считаете, что что-то должно быть в LogCat, запустите тест самостоятельно и скопируйте в свой ответ строки, которые я должен найти.

Спасибо.

========

Краткий список техник на данный момент выглядит следующим образом:

Инвазивные методы: пожалуйста, запустите тест самостоятельно и скопируйте в свой ответ строки, которые я должен найти.

Спасибо.

========

Краткий список методов на данный момент выглядит следующим образом:

Инвазивные методы: пожалуйста, запустите тест самостоятельно и скопируйте в свой ответ строки, которые я должен найти.

Спасибо.

========

Краткий список методов на данный момент выглядит следующим образом:

Инвазивные методы: 1. Поместите тост в те места кода, где вы хотите видеть, что вы выполняли. 2. Поместите команду try / catch вокруг кода там, где, по вашему мнению, существует возможность выброса исключения. 3. Закомментируйте код, перекомпилируйте и повторно протестируйте.

Неинвазивные методы: 1. Используйте отладчик. Точки останова, проверка переменных ... 2. Стресс-тестер обезьяны. 3. Загрузите исходную библиотеку Android. 4. Используйте фильтры LogCat, чтобы увидеть, есть ли в списке «Причина».

Неясно, если доступно: 1. Отладочная версия библиотеки Android, в которой есть дополнительные журналы, утверждения или другая дополнительная помощь. 2. Возможность проверки исключений в Eclipse с помощью панели отладки или других методов. 3. Способ определения более глобального обработчика исключений try / catch. 4. Возможность отладки через исходный код библиотеки Android.

Недоступно: 1. Неинвазивный способ просмотра содержимого исключения или места возникновения исключения.

6
задан user405821 26 November 2010 в 19:15
поделиться