Я новичок в телефоне и разработке Android. Могу ли я узнать, как я могу отлаживать ошибку javascript на эмуляторе? Я слышал о ADB, могу ли я узнать, как я могу использовать и устанавливать его в системе Windows 7? У меня есть ajax, вызванный с jsonp, но ответа на эмулятор нет. Тем не менее, я могу назвать это ajax с браузером на окнах. Могу ли я узнать, что пошло не так?
Отлаживать javascript в эмуляторе Android с телефонной связью
Ответ 1
Вы могли бы, как минимум, записывать отладочные файлы в консоль adb, вызывая console.log() в JavaScript. Может быть, этого хватит?
Чтобы просмотреть выход журнала с помощью adb, перейдите в каталог SDK platform-tools/и выполните:
adb logcat
Ответ 2
Обновление Nov 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 или Web Inspector):
- Просмотр и изменение DOM
- Редактирование CSS
- Консоль для активной отладки и запуска Javascript удаленно.
- Другие вещи, такие как: хранение, ресурсы, временная шкала, профиль и т.д.
Ответ 3
Теперь вы можете использовать инструменты Chrome dev для удаленного отладки приложений Android Phonegap! Я написал инструкции здесь: Удаленная отладка приложений Phonegap с помощью инструментов Chrome Dev
Шаги для эмулятора Android:
- Перейдите в chrome://проверьте/в Google Chrome на вашем настольном компьютере.
- Найдите эмулятор Android на вкладке "Устройства" и нажмите ссылку "проверить"
См. также Начало работы с удаленными отладочными устройствами Android
Ответ 4
Ознакомьтесь с недавно опубликованным http://developer.android.com/guide/webapps/debugging.html
Ответ 5
Я бы рекомендовал jsconsole. Он позволяет вводить любой JavaScript на страницу и предоставляет базовую консоль. Там хороший учебник по удаленной отладке.
Ответ 6
Да, у вас есть ошибки журнала с консолью .log и показать вкладку LogCat в Eclipse. Там появятся сообщения веб-консоли (включая ошибки JS). Это немного подробный, поэтому вы должны фильтровать, чтобы показывать только теги веб-консоли, но он работает хорошо. Описан здесь: ПОКАЗАТЬ КОНСОЛЬ CONSOLE.LOG ВЫХОД И JAVASCRIPT ОШИБКИ С PHONEGAP НА ANDROID/ECLIPSE
Ответ 7
Я обнаружил, что это работает для отладки ошибок javascript для Android/Phonegap при тестировании приложения через Eclipse в Windows 7.
Просто перейдите в Окно > Показать вид > Другое...
Затем выберите LogCat в папке Android.
Открывшееся окно/вкладка, где эмулятор Android отправит свои журналы и сообщения об ошибках. Вы можете отделить это окно и поместить его за пределы Eclipse IDE (я нашел это полезным). Вы также можете контролировать типы ошибок, которые вы видите, выбрав любую из 5 цветных букв в правом верхнем углу окна.
Чтобы скрыть бесполезную информацию, чтобы вы просто видели ошибки, убедитесь, что у вас есть только (E). Лично мне также нравятся выбранные предупреждения (W), а также выбранные ошибки (E).
Надеюсь, что это поможет!
Ответ 8
Существует (наконец) инструмент, доступный для правильной отладки JavaScript для Android - http://www.jshybugger.org/
Особенности:
- добавить/удалить/включить/отключить контрольные точки
- смотреть выражения
- шаг в/над/выход
- приостановить исключение
- вызов стека навигации
- локальная проверка переменных
- удаленная консоль
- javascript синтаксис и отчет об ошибках времени выполнения
- просмотр/редактирование/удаление локальных элементов хранения
- просмотр/редактирование/удаление элементов хранения сеанса
- просматривать/редактировать/удалять записи базы данных WebSQL (смотреть видео)
- просмотр ресурсов страниц (изображения, скрипты, html)
- поддержка удаленной консоли улучшена (stacktrace)
- Отладчик: расширенный контроль объектов
- Отладчик: условные точки останова
- Отладчик: продолжайте здесь.
Ответ 9
Я легко решил это на двух шагах.
Измените уровень ведения журнала
В config.xml добавьте эту строку
<log level="DEBUG"/>
Запустить журнал кордовы
Это файл bat, который вы можете просто запустить и отследить все сообщения журнала, перейдите в проект phonegap и перейдите к \platforms\android\cordova
, затем откройте log.bat
, вы можете теперь эмулировать свое приложение с помощью командной строки
cordova emulate
и журнал будет показан в cmd, который будет всплывать при открытии log.bat
Ответ 10
Если вы хотите настроить NodeJS где-нибудь, вы можете сделать некоторую расширенную отладку с John Boxall iBug, которая, хотя была разработана для iPhone, который я тестировал на Android, отлично работает. Это в основном firebug lite для мобильных устройств. Я указываю на причину моей вилки Node сильно изменился, и код Джона не будет работать на современном узлеJS, поэтому я его запустил, чтобы запустить его и запустить на nodeJS 0.2.3, YMMV в более поздних версиях nodeJS.
Ответ 11
Если вы используете console.log
, вы можете делать простые инструкции печати. Также, используя adb
, чтобы просмотреть их, вы можете использовать средство просмотра журнала на устройстве и просматривать журналы там. Дополнительная информация: http://www.technomancy.org/android/javascript-debugging/
Ответ 12
Лучшим решением для исключения исключений и показа в консоли является следующий код:
window.onerror = function(msg, uri, line) {
console.log(msg + uri + line);
}
Ответ 13
В Eclipse вы можете добавить привязку к кнопке назад эмулятора Android и проверить значение "на лету". Добавьте диспетчер событий 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);
}
}
Ответ 14
Если вы используете сборку Phonegap и хотите отлаживать ее с помощью консоли 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 Build, установите APK, подключите телефон к USB, включите USB-отладку на вашем телефоне, затем посетите chrome://inspect.
Источник: https://www.genuitec.com/products/gapdebug/learning-center/configuration/
Ответ 15
Отладка PhoneGap/Apache Cordova Приложение легко с GapDebug
-
Загрузите и установите GapDebug с https://www.genuitec.com/products/gapdebug/
-
Запустите GapDebug на своем ПК /Mac
-
Включить опцию разработчика и отладку по USB на устройстве Android (Настройки → Опция разработчика (ВКЛ) → Отладка USB (ВКЛ))
-
Если опция разработчика не найдена (Настройки → О телефоне → Нажмите "Номер сборки" 7 раз)
- Вы можете отладить ваше приложение с вашего GapDebug
обращаться
Ответ 16
Отладка телефонной почты все еще существует. тот, который я знаю, находится в сборке телефонных звонков, найденном в настройках, и поставьте галочку в опции отладочного приложения. Затем он восстановит ваше приложение, когда вы его сохраните. На странице приложения появится кнопка отладки вместе с параметрами перестройки. (эта служба также использует встроенный 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="*" />
Я вытаскивал свои волосы, пытаясь заставить любой удаленный инструмент отладки работать только для того, чтобы узнать, что внешние запросы были заблокированы по умолчанию. это спасло меня.
Ответ 17
Обновление: в настоящее время PhoneGap называется Apache Cordova, и если вы хотите использовать его для разработки приложений для Android, вам необходимо установить Android Studio. Чтобы открыть консоль Logcat из Android Studio, откройте свой проект Android (это папка платформы/андроида в вашем проекте Cordova) и выберите меню Tools- > Android- > Android Device Monitor.
Android Device Monitor (AVD) может работать автономно, поэтому вы можете создать прямой доступ, чтобы избежать всего этого пути. AVD автоматически получает сообщения журнала с вашего эмулятора, запущенного с помощью Cordova, и позволяет вам легко устанавливать фильтры для уменьшения большого объема вывода, полученного от эмулятора. Я предпочитаю фильтровать по имени приложения.