无法打开debugging器端口:java.net.SocketException“套接字closures”

我正在使用Android Studio,有多种使用Gradle的风格,每种风格都有一个debugging和发布types,按照下面的描述进行组织。当我尝试启动debugging器时,出现以下错误:

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

我也无法将debugging器附加到我的设备运行(它只显示我的手机的名称,而不是应用程序)。

所有3种口味安装在我的手机上就好了。 我只是无法让我debugging它们。 我还testing了在Nexus平板电脑上安装debugging器,并得到了相同的结果。

这不是Gradle,因为我可以运行其他基于Gradle的应用程序并附加debugging器,所以我不知道这是如何设置我的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的答案有效,为什么它可能会解决我的问题,如果我们知道的话。 看到我的第二个评论,知道为什么,但总之,你必须在下拉列表中select匹配你的应用程序的根目录的名称。

Solutions Collecting From Web of "无法打开debugging器端口:java.net.SocketException“套接字closures”"

只需点击button(RUNbutton左侧)。

在这里输入图像说明

selectAndroid。 然后运行。

它将连接到您的设备。

不要忘记更改构build变种

在这里输入图像说明

我终于明白了为什么我得到这个错误,所以我现在要解释我是如何Debug 。 请注意,我使用Gradle (使用相同的代码构build多个apk),这可能会影响您使用这个答案的第三部分。

对于这些工作,在debugging(#1中的图标)旁边的下拉列表中,并且运行顶部工具栏中的button,必须使用旁边的以下图标select一个,因为这是您的根目录的名称应用程序的所有代码在哪里:

在这里输入图像说明

  1. 要从一开始就开始debugging,我从一开始就以Debug模式运行应用程序,在工具栏中使用这个button:

在这里输入图像说明!

  1. 要将debugging器附加到应用程序当它已经运行的@ scottyab提到,我点击工具栏上的Attach Debuggerbutton:

在这里输入图像说明

  1. 要以debugging模式运行我的应用程序的发行版本,我已经开始在文件pathmyApp/src/appNameDebug(verses appNameRelease)/res/values/strings.xml版本的strings.xml中更改我的string,更多在这里容易看到,在下半部分 。 当我说更改时,我的意思是我有两个版本的所有string(在我的情况下是3)从使用debugging服务器更改为使用发行版服务器所必需的。 它可能不完全是犹太教,但它需要大约5秒去文件,并按住Cmd + /并取消注释和注释所有适当的行。

Release版本就在那里,当我准备build立一个apk版本。

以这种方式做事已经消除了这个popup的错误了。 我认为Release版本不是用于debugging的,我还没有find一种简单的方法来在Release模式下打开debugging标志。

我设法通过在生成后附加debugging器来实现这个工作,请参阅无法打开debugging器端口:java.net.SocketException“Socket closed”

我设法通过杀死&重新启动adb过程摆脱这个问题,希望这将有助于:]

我已经解决了这个问题,参考下面的答案

android studio 2.3.2中的“select运行/debuggingconfiguration”button

在这里输入图像说明

将debuggingtypes更改为本机

在这里输入图像说明