Попробуйте следующее:
Создайте приложение HelloWorld.
Добавить оператор Log в конец onCreate:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("HelloWorldActivity.onCreate()", "setContentView() completed");
}
Поместить точку останова в оператор Log.
Запустите приложение в эмуляторе и отметьте, что оно работает, и перейдите к записи Logged в окне LogCat Eclipse.
Измените HelloWorldActivity так, чтобы оно расширялось от ListActivity вместо Activity.
public class HelloWorldActivity extends ListActivity {
- Запустите приложение в эмуляторе и обратите внимание, что оно не достигает журнала.заявление.
Мой вопрос не в том, почему это не удается.Мой вопрос, как бы вы пошли на устранение этого сбоя?Все, что я вижу на панели Eclipse Debug, - это исключение RuntimeException.Я вижу, что в LogCat есть куча сообщений, но она огромна, и я искал ее, но не могу найти ничего, что указывало бы, что не так или где в моем коде произошло исключение.Я не могу найти способ отобразить сообщение внутри RuntimeException или трассировки стека, чтобы узнать, какая строка кода инициировала исключение.
Я предполагаю, что должны быть более эффективные способы использования инструментов для поиска ошибок, но я новичок и, похоже, не могу найти лучший способ отладки, кроме как упаковывать все, что я кодирую, в try / catch.Я ожидал бы найти сообщение в LogCat, сгенерированное броском исключения.Я ожидал, что окно Debug позволит вам проверить содержимое исключения.Я не говорю, что таких методов не существует, я говорю, что у меня возникают трудности с поиском новичка, как отлаживать и спрашиваю, какие методы существуют и как их использовать?
Итак, проще говоря:
- Как бы вы нашли эту ошибку, если бы вы еще не знали, что ее вызвало?
- Какие методы вы бы использовали, чтобы выяснить первопричину?
- Как вы будете проверять детали Исключения?
- Вообще, как вы находите проблемы в своем коде Android с помощью Eclipse?
Приветствуются многочисленные предложения и обсуждения.:)
Я бы включил содержимое моего 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. Неинвазивный способ просмотра содержимого исключения или того, где произошло исключение.