отладка javascript в эмуляторе android с помощью phonegap
Я новичок в разработке phonegap и android. Могу ли я знать, как я могу отлаживать ошибку javascript на эмуляторе? Я слышал о ADB может я знаю, как я могу использовать и установить его на windows 7 системы? У меня есть ajax вызывается с jsonp, но нет ответа на эмулятор. Тем не менее, я могу назвать это ajax с браузером на windows. Могу я узнать, что пошло не так?
17 ответов:
вы могли бы по крайней мере записывать отладочные материалы в консоль adb, вызывая консоль.log () в JavaScript. Может быть, этого будет достаточно?
чтобы просмотреть вывод журнала с помощью adb, перейдите к вашей платформе SDK-tools/ directory и выполните:
adb logcat
посмотреть logcat инструмент командной строки
Обновление Ноябрь 2016: похоже, это больше не работает.
проще и одним из самых мощных способов является использование http://debug.phonegap.com (он использует Weinre в фоновом режиме, если вам не все равно). Ты просто
- выбрать случайную строку, скажем
r4nd0m
,- впрыснуть
<script src="http://debug.phonegap.com/target/target-script-min.js#r4nd0m"></script>
в своемindex.html
- посетить
http://debug.phonegap.com/client/#r4nd0m
и вы мгновенно будете отлаживать свой мобильный интернет приложение.что вы можете сделать (похоже на Firebug или веб-инспектор):
- просмотр и изменение DOM
- редактирование CSS
- консоль для живой отладки и удаленного запуска Javascript.
- другие вещи, такие как: хранение, ресурсы, сроки, профиль, и т. д.
теперь вы можете использовать инструменты разработчика Chrome удаленная отладка приложений с помощью PhoneGap на Android! Я написал инструкции здесь:удаленная отладка приложений Phonegap с помощью Chrome Dev Tools
шаги для эмулятора Android:
- перейдите в chrome:/ / inspect / in Google Chrome на вашем настольном компьютере.
- найдите эмулятор Android на вкладке Устройства и нажмите "Проверить" ссылку
см. также вам Началось с удаленной отладки Android устройств
Проверьте недавно опубликованные http://developer.android.com/guide/webapps/debugging.html
Я бы рекомендовал jsconsole. Он позволяет вводить любой JavaScript на страницу и предоставляет базовую консоль. Есть хороший учебник по удаленной отладки.
Да, у вас есть ошибки журнала с консолью.войдите и покажите вкладку LogCat в Eclipse. Там будут отображаться сообщения веб-консоли (включая ошибки JS). Это немного многословно, поэтому вам нужно отфильтровать, чтобы показать только теги веб-консоли, но это хорошо работает. Описано здесь: ОТОБРАЖЕНИЕ КОНСОЛИ КОНСОЛИ.ВЫХОД ЖУРНАЛА И ОШИБКИ JAVASCRIPT С PHONEGAP НА ANDROID / ECLIPSE
Я обнаружил, что это работает для отладки ошибок javascript для Android/Phonegap при тестировании приложения через Eclipse на Windows 7.
просто подойдите к Окно > Показать Вид > Другое...
выберите LogCat под Android.
только что появившееся окно/вкладка, где эмулятор Android будет отправлять свои журналы и сообщения об ошибках. Вы можете отрядить на это окно и поместить его за пределами интегрированной среде разработки Eclipse (Я нашел это полезным). Вы также можете управлять типами ошибок, которые вы видите, выбрав любую из 5 цветных букв в правом верхнем углу окна.
чтобы скрыть бесполезную информацию, чтобы вы просто видели ошибки, убедитесь, что вы выбрали только (E). Лично мне также нравится, чтобы были выбраны (W) предупреждения, а также (E) ошибки.
надеюсь, что это поможет!
есть (наконец) инструмент, доступный для правильной отладки JavaScript для Android -http://www.jshybugger.org/
характеристики:
- добавить/удалить/включить / отключить точки останова линии
- следите за выражениями
- шаг в/ПО/из
- пауза на исключение
- навигация стека вызовов
- локальная переменная проверки
- удаленная консоль
- синтаксис JavaScript и отчеты об ошибках во время выполнения
- просмотр/редактирование / удаление локальных элементов хранения
- просмотр/редактирование / удаление элементов хранения сеанса
- просмотр/редактирование / удаление записей базы данных WebSQL (смотреть видео)
- просмотр ресурсов страницы (изображения, скрипты, html)
- поддержка удаленной консоли расширена (stacktrace)
- отладчик: расширенная проверка объекта
- отладчик: условные точки останова
- отладчик: продолжайте здесь
я решил его легко на двух шагах.
изменить уровень ведения журнала
в config.xml добавить эту строку
<log level="DEBUG"/>
запустите журнал Кордовы
это файл bat, который вы можете просто запустить и отслеживать все сообщения журнала перейдите в свой проект phonegap и перейдите к
\platforms\android\cordova
откройтеlog.bat
Теперь вы можете эмулировать приложения с помощью командной строкиcordova emulate
и журнал будет показан в cmd, который будет всплывать при открытии
log.bat
Если вы готовы установить NodeJS где вы можете сделать некоторые дополнительные отладки с iBug, который, хотя и был разработан для iPhone, я протестировал на Android, и он отлично работает. Это в основном firebug lite для мобильных устройств. Я указываю на свою вилку, потому что узел сильно изменился, и код Джона не будет работать на современных nodeJS, поэтому я исправил его, чтобы запустить его на 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 вы можете добавить крюк к кнопке возврата эмулятора android и проверить значение на лету. Добавьте
onBackPressed
диспетчер событий и вызовите оттуда консоль javascript. С точки зрения отладки eclipse вы измените значениеString
переменная к тому, что вы хотите проверить, и передать его в приложение, позвонивsuper.loadUrl
.смотрите код ниже. Не забудьте включить отладку вашего приложения из DDMS view
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"
<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, установите 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 debug все еще существует. тот, о котором я знаю, находится в сборке phonegap, найденной в настройках, и отметьте опцию приложения отладки. Затем он перестроит ваше приложение, когда вы его сохраните. Кнопка отладки появится на странице приложения вместе с параметрами перестроения. (этот сервис также использует встроенный weinre)
другой вариант, который я также нахожу самым быстрым, это jsconsole.com. Свой очень легкий для того чтобы настроить и не требует почти никакой конфигурации сравненной к другим методам отладка, где вам нужно установить много вещей, таких как драйверы и SDK.
внимание!
в PhoneGap 10 когда вы создаете свое приложение и любые запросы вне приложения(как будто нет интернета) терпят неудачу,вам придется добавить это в свою конфигурацию.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 (это папка platform/android внутри вашего проекта Cordova) и выберите меню Tools->Android->Android Device Monitor.
Android Device Monitor (AVD) может работать в одиночку, так что вы можете создать прямой доступ, чтобы избежать всего этого пути. AVD автоматически получит журнал сообщения из вашего эмулятора запускаются с помощью Cordova, и это позволяет легко устанавливать фильтры для уменьшения большого количества выходных данных, полученных из эмулятора. Я специально предпочитаю фильтровать по имени приложения.