Отлаживать javascript в эмуляторе Android с телефонной связью

Я новичок в телефоне и разработке Android. Могу ли я узнать, как я могу отлаживать ошибку javascript на эмуляторе? Я слышал о ADB, могу ли я узнать, как я могу использовать и устанавливать его в системе Windows 7? У меня есть ajax, вызванный с jsonp, но ответа на эмулятор нет. Однако я могу назвать это ajax с браузером в окнах. Могу я узнать, что пошло не так?

Solutions Collecting From Web of "Отлаживать javascript в эмуляторе Android с телефонной связью"

Вы могли бы хотя бы записать отладочную информацию в консоль adb, вызвав console.log () в JavaScript. Может, этого хватит?

Чтобы просмотреть выход журнала с помощью adb, перейдите в каталог SDK platform-tools / и выполните:

adb logcat 

См. Инструмент командной строки logcat

Обновление Nov 2016: похоже, что это больше не работает.

Самый простой и один из самых мощных способов – использовать http://debug.phonegap.com (он использует Weinre в фоновом режиме, если вам интересно). Ты только

  1. r4nd0m случайную строку, скажем r4nd0m ,
  2. Введите <script src="http://debug.phonegap.com/target/target-script-min.js#r4nd0m"></script> в свой index.html
  3. Посетите http://debug.phonegap.com/client/#r4nd0m и вы мгновенно будете отлаживать свое мобильное веб-приложение.

Вещи, которые вы можете сделать (похожие на Firebug или Web Inspector):

  1. Просмотр и изменение DOM
  2. Редактирование CSS
  3. Консоль для активной отладки и запуска Javascript удаленно.
  4. Другие вещи, такие как: хранение, ресурсы, временная шкала, профиль и т. Д.

Теперь вы можете использовать инструменты Chrome dev для удаленного отладки приложений Android Phonegap! Я написал инструкции здесь: Удаленная отладка приложений Phonegap с помощью инструментов Chrome Dev

Шаги для эмулятора Android:

  1. Перейдите в chrome: // проверьте / в Google Chrome на вашем настольном компьютере.
  2. Найдите Android-эмулятор на вкладке «Устройства» и нажмите ссылку «проверить»

Удаленная цель Google Chrome

См. Также Начало работы с удаленными устройствами для отладки Android

Ознакомьтесь с недавно опубликованным http://developer.android.com/guide/webapps/debugging.html

Я бы рекомендовал jsconsole . Он позволяет вводить любой JavaScript на страницу и предоставляет базовую консоль. Есть хороший учебник по удаленной отладке .

Да, у вас есть ошибки журнала с console.log и показать вкладку LogCat в Eclipse. Там появятся сообщения веб-консоли (включая ошибки JS). Это немного подробный, поэтому вы должны фильтровать, чтобы показывать только теги веб-консоли, но он работает хорошо. Описанный здесь: ПОКАЗАТЬ КОНСОЛЬ CONSOLE.LOG ВЫХОД И ОШИБКИ JAVASCRIPT С PHONEGAP НА ANDROID / ECLIPSE

Я обнаружил, что это работает для отладки ошибок javascript для Android / Phonegap при тестировании приложения через Eclipse в Windows 7.

Просто зайдите в Window> Show View> Other …

Затем выберите LogCat в папке Android .

Открывшееся окно / вкладка, где эмулятор Android отправляет свои журналы и сообщения об ошибках. Вы можете отсоединить это окно и поместить его за пределы Eclipse IDE (я нашел это полезным). Вы также можете контролировать типы ошибок, которые вы видите, выбрав любую из 5 цветных букв в правом верхнем углу окна.

Чтобы скрыть бесполезную информацию, чтобы вы просто видели ошибки, убедитесь, что у вас есть только (E). Лично мне также нравятся выбранные предупреждения (W), а также выбранные ошибки (E).

Надеюсь, это поможет!

Существует (наконец) инструмент для обеспечения правильной отладки JavaScript для Android – http://www.jshybugger.org/

Особенности:

  • Добавить / удалить / включить / отключить контрольные точки строки
  • Смотреть выражения
  • Ввод / вывод / выход
  • Приостановить исключение
  • Навигация в стеке вызовов
  • Локальная переменная проверка
  • Удаленная консоль
  • Синтаксис javascript и отчет об ошибках времени выполнения
  • Просматривать / редактировать / удалять элементы локального хранилища
  • Просмотр / редактирование / удаление записей сеанса
  • Просматривать / редактировать / удалять записи базы данных WebSQL (смотреть видео)
  • Просматривать ресурсы страниц (изображения, скрипты, html)
  • Расширенная консольная поддержка (stacktrace)
  • Отладчик: расширенный контроль объектов
  • Отладчик: условные точки останова
  • Отладчик: продолжайте здесь

Я решил это легко на двух шагах.

Изменение уровня ведения журнала

В config.xml добавьте эту строку

  <log level="DEBUG"/> 

Запуск журнала cordova

Это файл bat, который вы можете просто запустить и отследить все сообщения журнала, перейдите в проект phonegap и перейдите к \platforms\android\cordova затем откройте log.bat , теперь вы можете эмулировать свое приложение с помощью командной строки

 cordova emulate 

И журнал будет показан в cmd, который будет всплывать при открытии log.bat

Если вы хотите настроить NodeJS где-нибудь, вы можете сделать некоторую расширенную отладку с iBug от Джона Боксалла , который, хотя был разработан для iPhone, который я тестировал на Android, и он отлично работает. Это в основном firebug lite для мобильных устройств. Я указываю на свою причину вилки. Узел сильно изменился, и код Джона не запускался на современном узле JS, поэтому я его исправил, чтобы запустить его и запустить на nodeJS 0.2.3, YMMV в более поздних версиях nodeJS.

Если вы используете console.log вы можете делать простые инструкции печати. Также, используя adb для просмотра их, вы можете использовать средство просмотра журнала на устройстве и просматривать журналы там. Дополнительная информация: http://www.technomancy.org/android/javascript-debugging/

Лучшим решением для исключения исключений и показа в консоли является следующий код:

 window.onerror = function(msg, uri, line) { console.log(msg + uri + line); } 

В Eclipse вы можете добавить привязку к кнопке назад и обратно и проверить значение «на лету». Добавьте onBackPressed событий onBackPressed и вызовите консоль javascript. С точки зрения отладки eclipse вы измените значение переменной String на то, что хотите проверить, и передайте ее в свое приложение, вызвав super.loadUrl .

См. Код ниже. Не забудьте включить отладку вашего приложения из представления DDMS

 public class MyActivity extends DroidGap { private String js = ""; @Override public void onBackPressed() { //add a breakpoint to the follow line //and change the value for "js" variable before continuing execution super.loadUrl("javascript:console.log(" + js + ")"); return; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setBooleanProperty("keepRunning", false); super.setIntegerProperty("splashscreen", R.drawable.splash); super.loadUrl("file:///android_asset/www/index.html", 20000); } } 

Если вы используете функцию Phonegap Build и хотите отлаживать ее с помощью консоли Chrome, вот работающее решение. Можно отлаживать WebViews с помощью USB-отладки ( https://developer.chrome.com/devtools/docs/remote-debugging#debugging-webviews )

Во-первых, убедитесь, что ваш тег виджета содержит xmlns: android = "http://schemas.android.com/apk/res/android&quot;

 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="me.app.id" version="1.0.0"> 

Затем добавьте следующее

 <gap:config-file platform="android" parent="/manifest"> <application android:debuggable="true" /> </gap:config-file> 

Он работает для меня на Nexus 5, Phonegap 3.7.0.

 <preference name="phonegap-version" value="3.7.0" /> 

Создайте приложение в Phonegap Build, установите APK, подключите телефон к USB, включите USB-отладку на вашем телефоне, затем посетите chrome: // inspect.

Источник: https://www.genuitec.com/products/gapdebug/learning-center/configuration/

Отладка PhoneGap / Apache Cordova Приложение легко с GapDebug

  • Загрузите и установите GapDebug с https://www.genuitec.com/products/gapdebug/

  • Запустите GapDebug на компьютере / Mac

  • Включите опцию разработчика и USB-отладку на вашем устройстве Android (Настройки -> Вариант разработчика (ВКЛ) -> Отладка USB (ВКЛ))

  • Если параметр разработчика не найден (Настройки -> О телефоне -> Щелкните по номеру сборки 7 раз)

  • Вы можете отлаживать свое приложение из своего GapDebug

См. http://phonegappro.com/tutorials/debugging-phonegap-applications-apache-cordova/ для подробных шагов с изображениями

Отладка телефонной почты по-прежнему существует. Тот, который я знаю, находится в сборке phonegap, найденном в настройках, и отметьте опцию отладочного приложения. Затем он восстановит ваше приложение, когда вы его сохраните. На странице приложения появится кнопка отладки вместе с параметрами перестройки. (Эта служба также использует встроенный weinre)

Другим вариантом, который я также считаю самым быстрым, является jsconsole.com . Его очень легко настроить и не требует практически никакой конфигурации по сравнению с другими методами отладки, когда вам нужно установить множество вещей, таких как драйверы и SDK.

ЗАМЕТКА!

В PhoneGap 10, когда вы создаете приложение и какие-либо запросы вне приложения (как будто нет Интернета) терпят неудачу, вам придется добавить это в свой config.xml

 <gap:plugin name="com.indigoway.cordova.whitelist.whitelistplugin" version="1.1.1" /> <access origin="*" /> <allow-navigation href="*" /> <allow-intent href="*" /> 

Я тянул свои волосы, пытаясь заставить любой удаленный инструмент отладки работать только для того, чтобы узнать, что внешние запросы были заблокированы по умолчанию. Это спасло меня.

Обновление: в настоящее время PhoneGap называется Apache Cordova, и если вы хотите использовать его для разработки приложений для Android, вам необходимо установить Android Studio. Чтобы открыть консоль logcat из Android Studio, откройте свой проект Android (это папка платформы / андроида внутри вашего проекта в Кордове) и выберите меню Tools-> Android-> Android Device Monitor.

Монитор устройств Android (AVD) может работать один, поэтому вы можете создать прямой доступ, чтобы избежать всего этого пути. AVD автоматически получает сообщения журнала с вашего эмулятора, запущенного с помощью Cordova, и позволяет вам легко устанавливать фильтры для уменьшения большого объема вывода, полученного от эмулятора. Я предпочитаю фильтровать по имени приложения.