Не удалось открыть порт отладчика: java.net.SocketException "Socket closed" - программирование
Подтвердить что ты не робот

Не удалось открыть порт отладчика: java.net.SocketException "Socket closed"

Я получаю эту ошибку при попытке отладки приложения Android на Android Studio (v.0.4.4):

Error running <appname> [assembleDebug]: 
Unable to open debugger port : java.net.SocketException "Socket closed"

Приложение компилируется и может быть перенесено на телефон с помощью adb. Нет проблем с adb; Я могу установить/контролировать logcat и т.д. Я могу загрузить другой проект и отлаживать его просто отлично. Я возвращаюсь к этому, и он все еще сломан. Таким образом, чтобы исключить проблему с ПК (на самом деле Linux vm работает под окнами), установка Android Studio и т.д. Я перезагрузил этот vm и хост.

У меня была эта проблема в прошлом году, и я "исправил ее", а затем удалив Eclipse (я подозревал, что, возможно, он пытался получить тот же сокет).

Я потратил некоторое время на поиск в Google и попытку, но они не имеют никакого значения.

Проблема возникла примерно в то время, когда я выпустил подписанную, дополненную сборку релизов. До тех пор я только запускал сборку отладки. Тем не менее, я считаю, что все, что я сделал для создания этой версии сборки, было для редактирования build.gradle и настройки Android Studio для автоматической подписки apks. С тех пор я вернул изменения в build.gradle, но проблема остается.

Я не вижу соответствующих ошибок в любых файлах журналов Android Studio; как будто это исключение захватывается, сообщается на экране, но нигде не регистрируется.

Надеюсь, кто-нибудь, кто это прочитает, может предложить несколько вещей, чтобы изменить это, что я упустил.

4b9b3361

Ответ 1

На рабочем столе Android Studio нажмите кнопку "Выбрать кнопку" Запустить/отладить конфигурацию "(одна с иконкой Android), вы сможете выбрать правильный вариант.

Ответ 2

У меня была ошибка "Socket closed" в течение нескольких недель, и это приводило меня в замешательство. Сегодня я обнаружил, что хотя запуск с помощью значка отладки все равно дает мне "Socket closed", если я присоединяю отладчик впоследствии, он работает (на снимке экрана). Надеюсь, это спасет чужое время.

Screenshot highlighting the attach debugger icon

Ответ 3

Мне удалось исправить эту проблему, выбрав конфигурацию "приложение". На приведенном выше экране снимок слева от кнопки запуска позволяет вам выбрать конфигурацию. Выберите один без скобок.

Ответ 4

Чтобы избежать этой проблемы и фактически запускаться из Android Studio, я должен был явно переключить вариант сборки, в котором я работал (через панель, которая появляется при выборе "вариантов сборки" на левом краю). Затем, когда на самом деле нажатие кнопки отладки вверх для моей настройки приложения Android (выбрано в раскрывающемся меню слева от значков "Запуск/отладка" ), оно правильно развернет режим варианта сборки, в котором я был. (Было бы неплохо, если бы я мог настроить различные конфигурации приложений для Android, чтобы развернуть различные типы сборки из выпадающего меню, вместо того, чтобы переключать варианты более вручную, но я не вижу, как сейчас.

enter image description here

Также в разделе buildTypes в файле build.gradle вы, вероятно, захотите debuggable true, иначе ваш процесс не появится в диалоговом окне, если вы попытаетесь вручную подключить отладчик.

Ответ 5

Я получал эту ошибку в Linux, и проблема в том, что другой предыдущий процесс взял порт и повесил. Таким образом, решение представляет собой netstat, чтобы найти процесс, блокирующий порт, затем уничтожить этот процесс или перезапустить компьютер.

Ответ 6

Я столкнулся с одним и тем же поведением, вышеупомянутые решения не сработали для меня, но у меня есть крошечный аргумент: мое приложение расширяет андроид .app.Application. То, что я нашел для меня, - это отредактировать конфигурацию прогона/отладки ( "Редактировать конфигурации..." ) и выбрать "Не запускать действие" вместо "Запустить действие по умолчанию".

Ответ 7

Я столкнулся с этой проблемой только сейчас, простое решение: если у вас запущено несколько экземпляров, убедитесь, что в вашем сценарии запуска указан другой порт JMX. обратитесь к изображению

Ответ 8

Я получал эту ошибку, потому что у меня была опция "Test Kind" в диалоговом окне "Run/Debug Configurations", установленном на "All in Package", а не "Test Class". Когда я устанавливаю его в "Test Class", отладчик работал безупречно.

введите описание изображения здесь

Ответ 9

У меня была аналогичная проблема с программой Java. Я перезапустил IDE и изменил номер порта JMX. Тогда программа запускалась в режиме отладки без каких-либо проблем.

Ответ 10

Убедитесь, что ваш телефон Android хорошо подключен.