Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

adb logcat

См. инструмент командной строки 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 на вкладке "Устройства" и нажмите ссылку "проверить"

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

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

Ответ 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, и позволяет вам легко устанавливать фильтры для уменьшения большого объема вывода, полученного от эмулятора. Я предпочитаю фильтровать по имени приложения.