adb forward не работает - PullRequest
       31

adb forward не работает

5 голосов
/ 13 января 2012

Переадресация порта ADB не работает для меня, и ваше понимание приветствуется.Следующая команда - это то, что я пытаюсь

. / Adb forward tcp: 5985 tcp: 5984 "

Я не вижу никаких ошибок (в logcat), но это просто молча терпит неудачу. Когда япопробуйте следующую команду curl localhost:5985, после этого я получаю "curl: (56) Ошибка Recv: сброс соединения по пиру"

Когда я пытаюсь curl localhost:5984, я вижу сообщение, поскольку у меня запущен процессна порту 5984 (сервер Couchbase).

Я не думаю, что это проблема с самим adb, так как все остальные команды adb работают. Среди других вещей, которые я пробовал: a) kill-server, сопровождаемый start-сервер (также с режимом sudo) б) Перезагрузка моей машины.

Излишне говорить, что ни один из них не работал. Я работаю на x64 Ubuntu 11.10.

Обратите внимание, что я работаюс эмулятором, и мой эмулятор работает. Я вижу другие сообщения в logcat, но не это.

Спасибо

-Venu

Ответы [ 4 ]

3 голосов
/ 01 августа 2012

Вы читали этот документ из Google? https://developers.google.com/chrome/mobile/docs/debugging

Это объясняет, что вы должны сначала убедиться, что вы можете видеть ваше устройство с

adb devices

Затем в Chrome на устройстве Android откройте «Настройки»> «Дополнительно»> «Инструменты разработчика» и установите флажок «Включить отладку по USB через Интернет», как показано ниже:

enter image description here

Затем введите следующую команду:

adb forward tcp:9222 localabstract:chrome_devtools_remote

И перейдите по этому URL в Chrome на рабочем столе:

localhost:9222

Это работает?

1 голос
/ 07 сентября 2017

В adb forward есть ошибка , из-за которой небольшие быстрые подключения к данным просто сбрасываются:

 emulator> nc -lk 9998
 host> adb forward tcp:9900 tcp:9998
 host> date | nc localhost 9900    # Does not arrive at the emulator
 host> ( date ; sleep 0.1 ) | nc localhost 9900  # Does arrive at the emulator

Тем не менее, когда я пытаюсь описать выше с curl,эти данные проходят - вероятно, потому что curl держит сокет открытым так же, как (date ; sleep 0.1).

1 голос
/ 15 июля 2013

На оригинальный вопрос ответ должен убедиться, что эмулятор вашего устройства работает.В Ubuntu вы можете использовать: netstat -tan, чтобы увидеть порты TCP, которые прослушивает ваша машина разработки.Обычно это порт 5554. Когда эмулятор не запущен, процесс не будет прослушивать этот порт.

1 голос
/ 07 сентября 2012

Ну, я наконец-то туда попал.Я не уверен, какой из них окончательно решил проблему (но большинство из них полезно):

  • , гарантирующее, что /etc/udev/rules.d/##-android.rules было chmod a+rw, поэтому нам не нужно sudo adb иможете отредактировать его снова
  • В Ubuntu 12.04 ATTRS{idVendor} - это простой шестнадцатеричный код (на некоторых страницах вам предлагается взять полный lsusb ####: #### код
  • У меня сейчас нет записи SYMLINK+="android_adb" в udev
  • adb devices все еще отображается ???????????? вместо кода моего устройства (но работает сейчас)
  • adb shell фактически возвращает# подсказка
  • adb usb ломает его (он не возвращался с curl, который, как я думал, улучшил ошибку, но нет - он ломает ее хуже)
...