Почему Android Wear не может подключить цель для отладки через Bluetooth?

Всякий раз, когда я активирую отладку через Bluetooth на своем носимом эмуляторе, устройство начинает выдавать эту ошибку каждые 10 миллисекунд на консоли:

08-07 12:15:53.472   1484-29405/com.google.android.apps.wearable.settings W/AdbTargetService﹕ error during createTcpConnection
    java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 7272): connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.IoBridge.connect(IoBridge.java:124)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
            at java.net.Socket.startupSocket(Socket.java:590)
            at java.net.Socket.tryAllAddresses(Socket.java:128)
            at java.net.Socket.<init>(Socket.java:178)
            at java.net.Socket.<init>(Socket.java:150)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread.createTcpConnection(AdbTargetService.java:203)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread.access$400(AdbTargetService.java:81)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread$2.run(AdbTargetService.java:153)
            at java.lang.Thread.run(Thread.java:818)
     Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.Posix.connect(Native Method)
            at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
            at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
            at libcore.io.IoBridge.connect(IoBridge.java:122)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
            at java.net.Socket.startupSocket(Socket.java:590)
            at java.net.Socket.tryAllAddresses(Socket.java:128)
            at java.net.Socket.<init>(Socket.java:178)
            at java.net.Socket.<init>(Socket.java:150)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread.createTcpConnection(AdbTargetService.java:203)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread.access$400(AdbTargetService.java:81)
            at com.google.android.clockwork.settings.AdbTargetService$PipeControlThread$2.run(AdbTargetService.java:153)
            at java.lang.Thread.run(Thread.java:818)
08-07 12:15:53.476    1229-1229/system_process D/ZenLog﹕ disable_effects: 0|com.google.android.apps.wearable.settings|11003|null|1000,listenerHints

В моем коде я отправляю сообщение с носимого на портативное устройство. Сообщение отправлено правильно, но отладчик не останавливается ни на одной точке останова в классе WearableListenerService в портативном модуле и кажется, что этот код не выполняется.

Дополнительная информация:

  • Устройство: Genymotion Samsung Galaxy S4, API 19, 4.4.4.
  • Носимое устройство: ADV Emulator Square, API 21
  • Тот же идентификатор приложения
  • Тот же номер версии
  • Носимый проект добавлен как зависимость в портативном проекте как wearApp project(':wear')
  • Нет тегов <uses-permission>
  • Android Wear установлен через apk, сброшенный на эмулятор: com.google.android.wearable.app-1.1.1.2016316-702016316-minAPI18
  • Отладка по Bluetooth активирована на портативном устройстве и сопряженных устройствах
  • Хост: подключен Цель: отключен. Он не подключается, когда я выполняю adb -s 192.168.56.102:5555 forward tcp:4444 localabstract:/adb-hub adb connect localhost:4444, однако третье бесполезное устройство, кажется, создается в постоянном автономном режиме, и его нельзя использовать для запуска чего-либо на нем:

устройства adb Подключенные устройства

Ни отзыв разрешений, ни сброс настроек к заводским (как предлагается в сообщении В поле выбора устройства Android Wear указано, что offline localhost:4444 minSdk (API 20) › deviceSdk (API 1)) работают.


person Juan José Melero Gómez    schedule 07.08.2015    source источник


Ответы (4)


Бывает, что я все недопонимаю. Если вы используете эмулированное носимое устройство, вам НЕ нужно:

  • Активируйте «Отладка по Bluetooth» в носимом устройстве.
  • Перенаправить порты с помощью adb -s 192.168.56.102:5555 forward tcp:4444 localabstract:/adb-hub и adb connect localhost:4444.
  • И даже целевое и хост-устройства могут отображаться как «отключенные».

Все, что вам нужно, это выполнить adb -s handheldDeviceName forward tcp:5601 tcp:5601, чтобы КПК был сопряжен с эмулятором, а затем вы могли начать отладку без дальнейших проблем.

Проблема заключалась в том, что в Android Studio вы можете отлаживать только один модуль за раз с помощью значка для отладки: < img src="https://i.stack.imgur.com/7fddR.png" alt="Значок отладки">.

Если вы хотите отлаживать оба модуля одновременно, чтобы отслеживать все точки останова, вам нужно использовать кнопку отладки с одним модулем, а затем подключить отладчик к другому устройству Прикрепить к отладчику значок процесса Android< /а>.

Оба устройства будут доступны в списке, отображающем их процессы после сопряжения.

person Juan José Melero Gómez    schedule 10.08.2015

У меня была эта проблема с moto 360, и я решил ее с помощью этого руководства:

http://melix.github.io/blog/2014/10/android-moto360.html

Итак, вы искали решение, и вот оно. По сути, проблема в том, что приложение-компаньон для Android не хранит свои настройки в своем кеше. Они хранятся в пространстве сервисов Google Play, так что вот процедура, которая сработала для меня, и я искренне надеюсь, что она сработает для вас. На вашем КПК:

  1. откройте настройки приложений, найдите приложение Android Wear, затем принудительно остановите его

  2. очистить его данные и кеш

  3. теперь найдите Сервисы Google Play (в зависимости от ваших языковых настроек он может отображаться под другим именем, на моем устройстве это «Сервисы Google Play».

  4. нажмите «Управление пространством». Вы увидите, что есть раздел для подключенных устройств. Пробовал очистить данные здесь, но не помогло, поэтому приходится нажимать удалить все данные.

  5. перезагрузить телефон

  6. перезагрузите свой Moto 360

Я не уверен, что два последних шага действительно необходимы, но я сделал это, потому что хотел убедиться, что принудительная остановка и очистка данных не приведут к какому-то странному поведению после этого. Когда вы снова открываете приложение-компаньон Android Wear, теперь оно должно выглядеть так, как если бы вы открывали его в первый раз и просили связать его с вашими часами. Сделайте это, и теперь вы сможете следовать обычной процедуре, описанной в документации Android, и…

person Matheus Campos    schedule 18.08.2015
comment
Извините, забыл отметить вопрос как решенный. @user3326264 user3326264, я прочитал эту страницу раз десять, но, в конце концов, проблема заключалась в том, что почти никто не упоминает, что вы должны использовать localhost: 4444 и все такое, ТОЛЬКО если вы используете настоящие Android Watch, и никто не объясняет, как для одновременной отладки мобильных и сменных модулей. - person Juan José Melero Gómez; 19.08.2015

Если вы на Mac, попробуйте это, прежде чем сбрасывать все без необходимости (обратите внимание на 127.0.0.1 вместо localhost):

adb forward tcp:4444 localabstract:/adb-hub

adb connect 127.0.0.1:4444
person Shiny Bit    schedule 20.03.2016

Когда localhost разрешается как в ::1 (IPv6), так и в 127.0.0.1 (IPv4), подключение к 127.0.0.1 может помочь и в Linux, а не только в Mac:

$ adb forward tcp:4444 localabstract:/adb-hub
$ adb connect localhost:4444
unable to connect to localhost:4444: Connection refused
$ adb connect 127.0.0.1:4444
connected to 127.0.0.1:4444
$ adb devices
List of devices attached
127.0.0.1:4444  device
...
$
person haubi    schedule 17.08.2016