Не удалось подключить отладчик в Android Studio - localhost: 8600 java.net.ConnectException
Я не могу прикрепить отладчик в Android Studio во время отладки на телефоне.
В настоящее время я использую Samsung S4, работающий под управлением Android 4.4.4 (но попробовал телефон S5, S6, S7 и Moto E на разных версиях Android). Это время, когда я пытаюсь запустить его с любой из следующих ошибок:
I/System.out: Отправка фрагмента WAIT
W/ActivityThread: приложение ожидает отладчика на порту 8100...
или
не удалось открыть порт отладчика localhost: 8600 java.net.ConnectException "соединение отказано"
и приложение говорит:
Ожидание отладчика
Приложение (процесс) ожидает отладчика для присоединения.
Сила Закрыть
Версия Android Studio:
Android Studio 2.2.2
Build # AI-145.3360264, построенный 18 октября 2016 года
JRE: 1.8.0_112-release-b05 x86_64
JVM: 64-разрядная виртуальная машина OpenJDK от JetBrains s.r.o
Версия для Mac:
10.11.6 (15G1004)
Я могу успешно подключиться и запустить приложение, я просто не могу подключить отладчик при запуске. Выполнить > Отладка приложения > выберите подключенный телефон > OK.
Я смог запустить приложение в отладке на других компьютерах (как Windows, так и Mac) с теми же телефонами.
Различные подходы, которые я пробовал из часов отладки и онлайн-поиска:
-
Недействить кеши/перезапустить студию Android
-
Проверьте, что что-либо еще работает на портах 8100, 8600, 8601 и т.д., ничего не возвращается, когда я запускаю следующее из bash:
$ # while Android studio is trying to attach the debugger
$ lsof -i :8100
$ lsof -i :8600
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
studio 6282 peter 125u IPv4 0x973c7e31bda641ab 0t0 TCP 192.168.1.16:64022- > ip-166-62-27-181.ip.secureserver.net:asterix (SYN_SENT) $ lsof -i: 8601 $ $ # после того, как студия Android не сможет подключить отладчик $ lsof -i: 8100 $ lsof -i: 8600 $ lsof -i: 8601 $
-
Run Tools > Android > Android Device Monitor - показывает мое устройство, но я не могу запустить Android Device Monitor, пока я пытаюсь отладить приложение, он говорит: "Монитор будет закрыт, чтобы включить интеграцию ADB. Продолжить?" Я не нашел ничего полезного здесь.
-
Поиск и уничтожение процессов adb
ps aux | egrep '(adb|java)'
... then doing `kill <pid>` or `kill -9 <pid>` if necessary for the found ones
-
Перезапустить студию Android
-
Перезагрузите компьютер
-
Обновите Java JDK с веб-сайта Oracle, но я не уверен, почему Android Studio все еще говорит: "JVM: OpenJDK 64-Bit Server VM от JetBrains s.r.o"
-
Полностью удалить и переустановить студию Android - например, qaru.site/info/24894/... - странно, я думаю, что это сработало для одного запуска отладчика, а затем не снова...
-
Tried Run > Прикрепить отладчик к Android-процессу - это не помогло
-
Прогонилось:
~/Library/Android/sdk/platform-tools/adb kill-server &&
~/Library/Android/sdk/platform-tools/adb start-server
-
Протестировано снятие флажка Run > Edit Configurations > Run/Debug Configurations > Пропустить установку, если APK не изменился
-
Проверить системные настройки > Безопасность и конфиденциальность > Брандмауэр - отключено
-
Обновление 1: попытка отмены разрешений на телефоне, а также перезагрузка
-
Обновление 1: отключено все точки останова Android Studio
Есть ли какие-либо другие идеи о том, что может произойти неправильно или что-либо значимое в деталях, которые я добавил выше?
Ответы
Ответ 1
Совсем неловко, но похоже, что некоторое время назад я ввел ip-адрес в файл /etc/hosts, чтобы проверить что-то как localhost
и никогда не удалял его. Я нашел комментарий к другому сообщению, чтобы проверить, что в вашем /etc/hosts указано следующее:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
После комментирования этой ложной строки отладчик теперь работает. Учитывая, что у меня есть дюжина других IP-адресов в этом файле (поэтому я могу более легко тестировать удаленные хосты с дружественным именем), я, должно быть, не заметил этого в нижней части. Я думаю, что более надежный подход к проверке, является ли это проблемой или нет, - это ping localhost и убедитесь, что он разрешает ip-адрес 127.0.0.1, например,
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
Отличные комментарии и предложения от других людей здесь тоже, спасибо!
Ответ 2
Я только что испытал ту же проблему. Кажется, как если бы у Android Studio Version 2.2 были проблемы с неприемлемым отладчиком, как вы можете видеть, например, здесь и здесь.
В моем случае следующее помогло:
- Удалите профиль запуска для своего приложения, выбрав "Run → Edit Configurations..." и удалив профиль. Не забудьте нажать кнопку "ОК" после удаления профиля.:)
- Создайте новый профиль запуска с нуля, снова перейдя в Run → Edit Configurations..., нажав кнопку +, выбрав профиль запуска Android App и выбрав свой стартовый модуль. Другие значения по умолчанию для профиля были в порядке.
Надеюсь, это вам тоже поможет.
Ответ 3
Проект очистки 1.try Build- > clean project
2.do file- > Invalidate/cache restart
если выше не помогает вам.
3.Попробуйте изменить кабель для передачи данных, который вы используете для подключения телефона.
если ничего выше не помогает, установите плагин ADW для Android wifi и попробуйте выполнить отладку через Wi-Fi.
Ответ 4
У меня также была такая же ошибка, и эта вещь работала для меня
1. Open Android Studio -> Terminal
2. Change directory to $Android SDK Path$\platform-tools
3. Write command adb get-state and hit enter.
Затем вы получите этот вывод
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
Ответ 5
Поддержка подлинной сборки отладки. Разработчикам больше не нужно добавлять атрибут android: debuggable в тег в манифесте - инструменты сборки автоматически добавляют атрибут. В Eclipse/ADT все инкрементные сборки считаются сборками отладки, поэтому инструменты вставляют android: debuggable = "true" . При экспорте подписанной сборки выпуска инструменты не добавляют атрибут. В Ant команда отладки ant автоматически вставляет атрибут android: debuggable = "true" , а ant release - нет. Если андроид: debuggable = "true" установлен вручную, то ant релиз фактически сделает сборку отладки, а не сборку выпуска.
В моем случае я борюсь с этой проблемой за 5 часов и обнаружил, что
minifyEnabled true
является основным виновником, поэтому изменить
minifyEnabled false
работать для меня
Мое приложение build.gradle выглядит как
buildTypes {
debug {
signingConfig signingConfigs.debug
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Ответ 6
У меня есть противоположная проблема с Android Studio 3.3, пытаясь отладить телефон, подключенный по Wi-Fi.
После выбора устройства в Android Studio я получаю следующее сообщение:
Ошибка при запуске приложения: невозможно открыть порт отладчика (localhost: 8600): java.net.ConnectException "Соединение отказано: соединение"
В моей сети также включен IPV-6.
Проблема в том, что "localhost" по умолчанию разрешает :: 1 на моей машине, но ADB старательно привязывается к 127.0.0.1. Я случайно узнал об этом, потому что провел целый день, пытаясь подключить ADB к эмуляторам, работающим на удаленной машине (к сожалению, не начиная с Android 4.4.
Чтобы решить эту проблему, добавьте следующую строку в \windows\system32\drivers\etc\hosts:
127.0.0.1 localhost
Ответ 7
Я использую реальное устройство. Простое удаление приложения на устройстве и запуск из Android Studio решило эту проблему.
Кажется, у Android Studio были проблемы с перезаписью файла, который уже был на телефоне.
Ответ 8
Попробуйте использовать следующие команды на terminal-
-
adb kill-server
-
adb start-server
Это работает хорошо.
Ответ 9
Сначала попробовал все вышеперечисленные способы, не помогло. У меня два компьютера с одинаковыми настройками. Но у одного работало у другого ошибка. Это дало мне представление о том, что это может быть "аппаратная" проблема. Я переключил USB на другой слот с USB3.0 и использовал короткий кабель, и WOW он начал работать. Я предлагаю там некоторую задержку в USB2.0 (опрос), поэтому процесс начинается не синхронно.