web-dev-qa-db-ja.com

E / art:デバッガーへの応答の送信に失敗しました:パイプが壊れていますが、アプリケーションはまだ実行されています

アプリケーションを実行すると、logcatに多くの行が表示されますが、エラーは1つだけです。

E/art:デバッガーへの応答の送信に失敗しました:パイプが壊れています

どういう意味ですか?そして、どうすれば修正できますか?

21
Vitaly Romaniv

エラーの説明:

E/ART: Failed sending reply to debugger: Broken pipe.

E/ARTとは?

[〜#〜] art [〜#〜][〜#〜] a [〜#〜]ndroidです[〜#〜] r [〜#〜]un[〜#〜] t [〜#〜] ime。これはAndroid携帯電話のバイトコードインタープリターです。Eは、単にERRORのログレベルを示します。

「デバッガへの返信の送信」とは何ですか?

Android電話でのデバッグは adb (Android Debugging Bridge)を使用して行われます。adbプロセスは開発マシン(ラップトップまたはPC )およびAndroidデバイス(つまり、エミュレーターまたはハンドセット)でデーモンが実行されます。

破損したパイプとは何ですか?

開発マシンとAndroidデバイスはクライアントサーバーのように通信し、壊れたパイプは通信が無効になったことを意味しますたとえば、クライアント(Androidデバイス)はサーバー(devマシンで実行されているadbプロセス)に応答を送信しようとしていますが、サーバーはすでにソケットを閉じています。

修正方法

まず、クリーン/リビルドを実行して、アプリが正しくビルドされていることを確認してください。

その後、実際の電話でUSBデバッグを使用してアプリを実行している場合、USBケーブルを取り外してから接続し直すと、クライアント/サーバー接続を再確立することで問題を解決できます。

これが機能しない場合は、USBケーブルを取り外して(必要に応じてエミュレーターを停止して)Android Studioを閉じます。これはadbプロセスを停止するのに十分です。その後、Android Studioを再度開くと、Studioが再起動し、接続が再確立されます。

これが機能しない場合は、 この質問 の手順を使用して手動でadbサーバーを停止してみてください。たとえば、コマンドプロンプトまたはターミナルを開いてsdk/platform-toolsディレクトリと入力:

adb kill-server
adb start-server
20
David Rawson

次のことができます。

  • エミュレーターを強制終了し、Android Studio
  • Android Studioおよび "Rebuild"を開き、基本的にビルドフォルダーを削除して再作成します。
4
Karim Fikani

Returnステートメントにブレークポイントがあり、それを削除するとすべてが正常に実行されました。試してみてください(すべてのブレークポイントを削除します)。

4
Warpzit

「adb」プロセスを強制終了すると、このエラーから回復できました。 adbを再起動してみてください。

1
Nilabja

モデルクラスのオブジェクトタイプ(img応答)を間違えたときにこのエラーが発生しましたが、AndroidでURLから応答を取得しようとしました。そして、私がそれを修正したとき、エラーは消えました

0
Sam

エラーは、実際のデータまたはクラスを取得していないために発生します。 Androidログレベルエラーで監視し、正規表現フィルターを使用せずにエラーを確認します。実際のエラーが表示されることを願っています。