web-dev-qa-db-ja.com

デバッガーポートを開けません:Java.net.SocketException "Socket closed"

Android app on Android Studio(v.0.4.4):

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

アプリがコンパイルされ、adbを使用して電話にプッシュできます。 adbに問題はありません。 logcatなどを完全にインストール/監視できます。別のプロジェクトをロードして、問題なくデバッグできます。私はこれに切り替えましたが、まだ壊れています。そのため、PC(実際にはWindowsで実行されているLinux vm)の問題、つまりAndroid Studio installなど。このvmとホストpcを再起動しました。

昨年この問題が発生し、Eclipseをアンインストールして「修正」しました(おそらく同じソケットを取得しようとしていたのではないかと思われます)。

私はグーグルでいくつかの時間を過ごし、提案を試みましたが、違いはありません。

この問題は、私が署名され、保護されたリリースビルドを作成した頃に発生しました。それまでは、デバッグビルドのみを実行していました。ただし、このリリースビルドを作成するために行ったのはbuild.gradleを編集し、Android Studioが自動的にapkに署名することだけだったと思います。残っています。

すべてのAndroid Studioログファイルに関連するエラーはありません。この例外がキャプチャされ、画面に報告されますが、どこにも記録されません。

これを読んでいる誰かが、私が見落としていたことを変えるためにここでいくつかのことを提案できることを願っています。

51
user146043

Android Studioデスクトップで、[実行/デバッグ構成の選択]ボタンをクリックします(Androidアイコンが付いたもの)、正しいオプションを選択できるはずです。 。

44
Chor Leong

私はこの「ソケットを閉じた」というエラーを数週間経験しましたが、それは少し腹を立てていました。今日、私は、デバッグアイコンから起動すると、デバッガを後で接続すると「ソケットが閉じられた」というメッセージが表示されることを発見しました(スクリーンショット)。他の人の時間を節約できることを願っています。

Screenshot highlighting the attach debugger icon

31
scottyab

「アプリ」設定を選択することで、この問題を修正できました。上記のスクリーンショットでは、実行ボタンの左側にあるプルダウンを使用して、構成を選択できます。括弧なしで選択します。

25
Steven Szczuka

Linuxでこのエラーが発生していましたが、問題は以前の別のプロセスがポートを取得してハングしたことでした。したがって、解決策は、ポートをブロックしているプロセスを特定してからこのプロセスを強制終了するnetstatです。または、マシンを再起動することもできます。

4
Rogelio

この問題を回避し、実際にAndroid Studioから起動するには、操作しているビルドバリアントを明示的に切り替える必要がありました(左側の[ビルドバリアント]を選択したときにポップアップするパネルを介して)。その後、実際にmy Androidアプリケーション構成(実行/デバッグアイコンの左側にあるドロップダウンメニューで選択))のデバッグボタンを上に押すと、ビルドバリアントモードが適切に展開されます(別のAndroidアプリの設定でドロップダウンメニューからさまざまなビルドタイプを展開し、バリアントを手動で切り替える必要がなくてもいいのですが、今すぐご覧ください。)

enter image description here

また、build.gradleファイルのbuildTypesセクションでは、おそらくdebuggable true、それ以外の場合、デバッガを手動でアタッチしようとすると、ダイアログにプロセスが表示されません。

3
qix

私は同じ振る舞いに出くわしました、上記の解決策は私にとってはうまくいきませんでしたが、ちょっとしたケースがあります:私のアプリはAndroid.app.Applicationを拡張します。私が見つけたのは、実行/デバッグ構成を編集し(「構成の編集...」)、「デフォルトのアクティビティを起動する」の代わりに「アクティビティを起動しない」を選択することです。

2
cmarcelk

今、この問題に遭遇しました。簡単な解決策です。複数のインスタンスを実行している場合は、実行構成に異なるJMXポートを指定してください。 画像を参照

2
friedwm

Javaプログラムで同様の問題があった。IDE=.

2
user3387386

「テストクラス」ではなく「パッケージ内のすべて」に設定された「実行/デバッグ構成」ダイアログボックスの「テストの種類」オプションがあるため、このエラーが発生していました。 「テストクラス」に設定すると、デバッガは問題なく動作しました。

enter image description here

1
rothloup