Подтвердить что ты не робот

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

Я использую Android Studio с несколькими вариантами использования Gradle, каждый из которых имеет тип Debug и Release, организованный, как описано здесь, в нижней части. Когда я пытаюсь запустить отладчик, я получаю эту ошибку:

Error running androidRecover [installAppDebug]: Unable to open debugger port :     java.net.SocketException "Socket closed

Я также не могу подключить отладчик к моему устройству после его запуска (он отображает только имя моего телефона, а не приложение).

Все 3 флейвора устанавливаются на моем телефоне очень хорошо. Я просто не могу заставить его отлаживать их. Я также тестировал прикрепление отладчика на планшете Nexus, и я получил тот же результат.

Это не Gradle специально в целом, потому что я могу запускать другие приложения на основе Gradle и просто отлаживать отладчик, поэтому я задаюсь вопросом, не связано ли это с тем, как я настроил проект и настройки Gradle.

Здесь мой build.gradle:

apply plugin: 'android'
apply from: 'signing.gradle'

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.3'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile
                     ('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    productFlavors {
        flav1 {
            packageName "com.ex.flav1"
            versionCode 32
            versionName "1.0.5"
            signingConfig signingConfigs.flav1
        }

        flav2 {
            packageName "com.ex.flav2"
            versionCode 33
            versionName "1.0.6"
            signingConfig signingConfigs.flav2
        }

        flav3 {
            packageName "com.ex.flav3"
            versionCode 27
            versionName "1.0.0"
            signingConfig signingConfigs.flav3
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/httpmime-4.2.5.jar')
}

Я действительно не знаю, что еще попробовать. Android Studio полностью обновлена. Я перезапустил Android Studio, мой телефон и компьютер.

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

Сообщите мне, нужна ли вам какая-либо другая информация.

Спасибо, Девин

Изменить. Я, наконец, знаю, почему работает ответ @hasanaydogar и почему он, вероятно, решил бы мою проблему, если бы мы это знали. См. Мой второй комментарий к нему, чтобы узнать, почему, но, в общем, вам нужно выбрать в раскрывающемся списке имя, соответствующее вашему корневому каталогу приложения.

4b9b3361

Ответ 1

Просто нажмите кнопку (слева от кнопки RUN).

enter image description here

Выберите Android. Затем запустите.

Он подключится к вашему устройству.

И не забудьте изменить вариант сборки

enter image description here

Ответ 2

Наконец-то я понял, почему я получил эту ошибку, поэтому сейчас я объясню, как я Debug. Обратите внимание, что я использую Gradle (создаю несколько apk, используя тот же код), что может повлиять на то, как вы используете третью часть этого ответа.

Чтобы они работали, в раскрывающемся списке рядом с кнопкой debug (значок в # 1) и кнопками запуска на верхней панели инструментов вы должны иметь тот, который выбран со следующим значком рядом с ним, потому что имя корня каталог вашего приложения, в котором живет весь ваш код:

enter image description here

  • Чтобы начать отладку с самого начала, я запускаю приложение в режиме Debug с самого начала, используя эту кнопку на панели инструментов:

enter image description here!

  1. Чтобы прикрепить отладчик к приложению, когда он уже запущен как упоминавшийся @scottyab, я нажимаю кнопку Attach Debugger на панели инструментов:

enter image description here

  1. Чтобы запустить версию моего приложения в режиме отладки, я начал менять строки в Debug версии strings.xml в пути к файлу myApp/src/appNameDebug(verses appNameRelease)/res/values/strings.xml, проще здесь, в нижней половине. Когда я говорю об изменении, я действительно имею в виду, что у меня есть две версии всех строк (3 в моем случае), необходимые для перехода от использования сервера отладки к использованию сервера выпуска. Это может быть не совсем кошерное, но требуется около 5 секунд, чтобы перейти к файлу, и удерживайте Cmd +/и раскомментируйте и прокомментируйте все соответствующие строки.

Моя версия Release существует только тогда, когда я готов построить apk для выпуска.

Выполнение подобных действий устраняет эту ошибку. Я думаю, что версия Release просто не предназначена для отладки, и я не нашел простой способ включить флаги отладки в режиме Release.

Ответ 4

Мне удалось избавиться от этой проблемы, убив и перезапустив процесс adb, надеюсь, что это поможет:]

Ответ 5

Я решил этот вопрос со ссылкой на следующий SO-ответ

Кнопка "Выбрать запуск/отладка" в студии Android 2.3.2

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

Измените тип Debug на Native

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