我正在使用Android Studio,使用Gradle多个渠道,每个渠道都有Debug和Release类型,并按照这里底部描述的方式进行组织。当我尝试启动调试器时,我收到以下错误:
Error running androidRecover [installAppDebug]: Unable to open debugger port : java.net.SocketException "Socket closed
一旦我的设备在运行,我也无法将调试器连接到它(它只显示我的手机名称,而不是应用程序)。
我的三个构建版本都可以成功安装在我的手机上。我只是无法让它允许我进行调试。我还在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来结束它们。一旦这个问题解决了,它就会时好时坏地工作。
如果您需要任何其他信息,请告诉我。
谢谢, Devin
编辑 我终于知道为什么@hasanaydogar的答案有效,如果我们当时知道,它可能已经解决了我的问题。请看一下我的第二条评论,了解原因,简而言之,您必须在下拉菜单中选择与您的应用程序根目录匹配的名称。