Как правильно отлаживать Java (Android) с помощью Eclipse? - PullRequest
5 голосов
/ 31 августа 2011

У меня проблемы с отладкой кода. Один из моих AsyncTasks выдает исключение RuntimeException, но я не знаю, какая строка в моем коде отвечает за это. Поскольку я новичок в Eclipse и Java в целом, все это довольно запутанно для меня.

Окно отладки Eclipse показывает мне, что моя AsyncTask была приостановлена ​​из-за RuntimeException. Ниже этого есть три строки, которые указывают на определенные строки кода. Тем не менее, эти строки не существуют в моем коде, поэтому я не знаю, что вызывает сбой моего приложения. Я что-то упускаю в отладке в Java / Android?

Вот три строки, которые мне даны, кстати:

ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1086  
ThreadPoolExecutor$Worker.run() line: 561   
Thread.run() line: 1096 

Как мне с этим работать? Помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 31 августа 2011

Лучше всего использовать logcat - это покажет трассировку стека и возникшую ошибку.Я никогда не добивался большого успеха, просматривая код в DDMS, но с ошибками, показанными в logcat, обычно довольно легко понять, почему возникла ошибка.

См. Ответ Pratik для открытия logcat, еслиэто не видно в Затмении.

1 голос
/ 31 августа 2011

в ddms вы можете получить сообщение, связанное с ошибкой, предупреждением или другим типом сообщений, в окне logcat, если вы не можете найти logcat в ddms, затем перейдите в меню Window-> Show View- > logcat щелкните по нему, и вы сможете увидеть сообщение в том же формате, в котором вы также получаете окно устройства, в котором выберите устройство, которое вы можете отладить или передать сообщение с этого устройства в logcat.

Теперь проверьте, как вы можете найти информацию об ошибке в этом файле журнала

0 голосов
/ 21 ноября 2011

Раджив понял все правильно - когда вы устанавливаете точку останова для исключения, отладчик прерывается на строке, которая его выбрасывает, а не на строке, которая ее перехватывает.Таким образом, вы можете увидеть, что вызывает исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...