Удаленная отладка Android для приложения Phonegap не работает

Привет, я пытаюсь отлаживать приложение phonegap на своем устройстве через Chrome. Я выполнил все шаги, и мой телефон распознается устройствами adb команда,

Затем я перехожу к chrome://проверяю/# устройства, и я вижу свой телефон, но это сообщение появляется в браузере:

Offline

0019C9AD7EF31F

Ожидание аутентификации: пожалуйста, примите сеанс отладки на устройстве.

Дело в том, что в моем телефоне такого сообщения нет, у меня есть Sansumg Galaxy S2 с kitkat. Я обновил версию с 4.1 до 4.4, потому что я думал, что это проблема, но после обновления до 4.4 одинаковой проблемы.

Кто-нибудь сталкивался с этой проблемой раньше?

Ответы

Ответ 1

Проблема заключается в том, что удаленная отладка используется только для браузера Chrome на Android, но не в веб-просмотрах внутри приложений, таких как использование телефонных разговоров. Но с Android 4.4 (Kitkat) и Phonegap 3.3 это теперь поддерживается.

Я написал сообщение в блоге об этом здесь:

http://adamwadeharris.com/remote-debugging-in-phonegap-with-chrome-devtools/

В основном вам нужно включить отладку веб-просмотра в главном файле Java приложения и убедиться, что ваше приложение настроено на API версии 19 (Kitkat). Если у вас нет устройства с Kitkat, вы можете использовать эмулятор.

Здесь вы можете включить отладку веб-просмотра:

В платформах /android/src/com/yourAppName/YourAppName.java добавьте следующие строки в другие операторы импорта

import android.os.Build;
import android.webkit.WebView;

И добавьте следующее внутри метода onCreate:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  WebView.setWebContentsDebuggingEnabled(true);
}

Ответ 2

Как уже было сказано в некоторых комментариях, это работает из коробки с кордоны 3.3+ и android 4.4+. Вам не нужно ничего устанавливать в AndroidManifest.xml.

Если вы используете cordova build или cordova run, режим построения по умолчанию будет "debug". Вы также можете увидеть это в сгенерированном имени файла apk, который будет выглядеть так:

{имя_приложения} -debug-unaligned.apk

В этом случае вам просто нужен Chrome в версии 32+ и выберите Chrome menu > Tools > Inspect Devices (конечно, после того, как вы развернули приложение на своем устройстве и включили отладку usb).

Дополнительную информацию смотрите здесь: https://developer.chrome.com/devtools/docs/remote-debugging

Что касается проблемы аутентификации... При первом запуске cordova android run ваше приложение будет развернуто на вашем телефоне, и вам нужно подтвердить диалог проверки подлинности и сделать отметку, чтобы запомнить ваш выбор. После этого вы должны хорошо осмотреть развернутое приложение в инспекторе хрома.

Ответ 3

Кажется, это ошибка на телефоне. Я исправил:

  • Выберите параметры разработчика
  • Отменить авторизацию отладки USB
  • выключить и включить USB-отладочный переключатель
  • подключитесь к ПК.
  • теперь просто примите два диалога полномочий, и он отлично работает в AndroidStudio и Chrome.

Ответ 4

Если вы видите, что "Ожидание авторизации" продолжает мигать, попробуйте удалить все обновления Chrome с устройства и перейти на Chrome v.33. Кажется, что что-то сломалось в одном из последних сборок Chrome (возникла проблема с Chrome v.44). Вот ссылка на связанную с этим проблему: https://code.google.com/p/chromium/issues/detail?id=512150

Ответ 5

Если вы используете Phonegap Build, добавьте следующее в свой файл config.xml, чтобы проверить веб-просмотр в консоли Chrome dev.

Сначала убедитесь, что ваш тег виджета содержит 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" />

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

Ответ 6

Это хорошо для меня:

adb logcat CordovaActivity:V CordovaLog:V Cm
CordovaWebView:V IceCreamCordovaWebViewClient:V *:S