2012-06-01 5 views
9

Я пытаюсь отлаживать простое приложение для Android на эмуляторе или устройстве, и я не могу заставить отладчик останавливаться на любых контрольных точках, которые я установил. Я объединил другие сообщения здесь и по всему Интернету и попробовал все предложения (добавьте debuggable: «true» в манифест, остановите и запустите adb, очистите все, убедитесь, что я использую кнопку отладки, а не кнопку запуска и т. Д.) , В перспективе Debug я вижу потоки, а в DDMS он показывает значок отладки рядом с устройством, от которого я отлаживаю. Я вижу голубые точки, где я установил точку останова, и перспектива Debug перечисляет их и говорит, что они активны.Отладка Android с Eclipse - нет точек останова

Я установил предупреждения непосредственно перед точками останова, чтобы проверить, что код выполняется.

Здесь можно сходить с ума. Любые другие предложения? Мне нужно пропустить что-то простое, но неочевидное.

ОБНОВЛЕНИЕ: Я ценю ответы до сих пор. К сожалению, они не решили мою проблему. Я выполнил инструкцию по отладке и включил отладку в телефоне. Кроме того, я вижу предупреждение «Ожидание отладчика» на телефоне при запуске. В общем, все говорит, что я отлаживаю (включая получение выходных данных logcat, которые я добавил). Он просто не остановится на контрольных точках, которые я добавил, и они перечислены на вкладке точек останова в перспективе Debug. Также просто повторять - это происходит при отладке как на устройстве, так и на эмуляторе. Одна вещь, которую я замечаю, это то, что когда я запускаю отладчик, у меня есть набор, чтобы вызывать Android Device Chooser. Там столбец «debug» пуст для моего устройства, но если эмулятор работает, столбец отладки говорит «Да». Также консоль заявляет, что пытается подключиться к отладчику. Должен ли быть консольный журнал, в котором говорится, что отладчик успешно подключен? Я этого не вижу.

ОБНОВЛЕНИЕ 20120914: Я был вдали от этого в течение некоторого времени и ранее отказался. Вернемся, чтобы попытаться справиться с этим. Он до сих пор не разрешен. Все выше все еще актуально, но еще одна вещь, которую я заметил. Я установил точку останова Class Load на основной активности, и она останавливается там. Он просто не останавливается ни на одной точке останова. Я только что обновился до последнего JDK 1.7.0_07, Android SDK 20, ADT Plugin 20.0.3. Я использовал logcat для вывода сообщения и установки точки останова в этой строке. Я вижу сообщение в logcat, поэтому я знаю, что код выполняется. Окно отладки в перспективе debig также показывает приложение Android с несколькими потоками под ним, а окно «Устройства» в перспективе DDMS показывает приложение с зеленым значком ошибки рядом с ним.

Еще одна вещь - когда отладчик запускает контрольные точки линии, маркеры не получают на них наложенную галочку (точка останова нагрузки класса!). Я предполагаю, что это основная причина, но я не знаю, почему они не получают этого. (Между прочим, скипетры также не установлены - точки останова не имеют линий через них).

Любые новые предложения будут оценены. Я сжег много времени на этом. Это должно быть что-то очевидное, чего я не вижу.

ответ

3

Android SDK предоставляет большинство инструментов, необходимых для отладки ваших приложений. Эта ссылка предоставит вам Android debugging environment and the debugging tools.

Вот и руки на учебник по debugging an android application.

Если вы хотите отладки с использованием фактических андроид телефон, включите "USB Debugging" в устройстве:

Настройки> Приложения> Разработка и включение отладки USB

И Roid 4,0:

Настройки> Параметры разработчика

и использовать Log.d и вашей Logcat.

1

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

Запускает ли приложение (на устройстве/эмуляторе) паузу «Ожидание отладчика»? Если нет, то вы не запускаете приложение, используя «конфигурацию отладки». Его кнопка находится в непосредственной близости от запуска (выпадающего) конфигурации.

5

Теперь я чувствую себя немного глупо, пишу это сообщение. Но я наконец решил проблему. Проблема в том, что вы не можете установить точки останова в коде Javascript. Часть, которую я забыл непреднамеренно, я пишу приложение для Android с помощью PhoneGap. Почти весь код - Javascript. Я так привык к разработке .NET-приложений .NET в Visual Studio. Я просто предположил, что вы можете установить точки останова в javascript-коде. Точки останова в коде Java работают нормально. В любом случае, спасибо за любые предложения. Do '; t знать, есть ли другие разработчики .NET, которые пытаются использовать PhoneGap, но, возможно, эта почта поможет им.

1

Попробуйте jsHybugger: http://www.jshybugger.org/ для установки контрольных точек javascript в Eclipse для удаленных (мобильных) устройств.

Он позволяет вам устанавливать точки останова, выполнять одиночные проверки, перехватывать исключения и взаимодействовать с средой JS/DOM. Вы можете использовать его из Eclipse или из Chrome или совместимого с Chrome отладчика на удаленном рабочем столе. Его можно использовать с приложениями, которые создают свой собственный webView.

Однако вы должны установить несколько файлов - но, вероятно, не сложнее использовать, чем weinre. он активно модифицирует JS-файлы (на лету, прозрачно для пользователя), чтобы включить всю эту отладку. WebKit действительно должен поддерживать отладку javascript изначально.

+0

Это не релевантный ответ на вопрос. По крайней мере, я могу видеть, что webview/phonegap/javascript упоминаются где-то еще, чем в другом ответе. – laalto

+2

Я думаю, что это актуально в том смысле, что он в конечном счете спрашивал о том, как отлаживать javascript в приложении (а не в Java в приложении, поскольку первоначальный вопрос мог подразумевать). Это единственный способ, которым я нашел возможность отлаживать (breakpoint/singlestep) javascript (в Eclipse). – Ribo

0

Убедитесь, что вы не проверяли пропуск всех точек останова (Run -> Пропустить все точки останова).

0

Ribo уже упоминает об этом в своем ответе, но поскольку этот вопрос и ответы касаются отладки приложений Phonegap. Вам обязательно нужно взглянуть на Weinre (WEb INspector REmote). http://people.apache.org/~pmuellr/weinre/docs/latest/

В настоящее время PhoneGap даже имеет собственный weinre обнялись в PhoneGap строят ... http://debug.phonegap.com/

Я большой поклонник этого ... (обратите внимание, если вы используете weinre на локальном компьютере и пытается отлаживайте приложение для телефонного экрана через Wi-Fi ... убедитесь, что ваше локальное устройство находится в той же сети Wi-Fi!)

Смежные вопросы