Удаленная отладка 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