アプリケーションを実行すると、logcatに多くの行が表示されますが、エラーは1つだけです。
E/art:デバッガーへの応答の送信に失敗しました:パイプが壊れています。
どういう意味ですか?そして、どうすれば修正できますか?
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
次のことができます。
Returnステートメントにブレークポイントがあり、それを削除するとすべてが正常に実行されました。試してみてください(すべてのブレークポイントを削除します)。
「adb」プロセスを強制終了すると、このエラーから回復できました。 adbを再起動してみてください。
モデルクラスのオブジェクトタイプ(img応答)を間違えたときにこのエラーが発生しましたが、AndroidでURLから応答を取得しようとしました。そして、私がそれを修正したとき、エラーは消えました
エラーは、実際のデータまたはクラスを取得していないために発生します。 Androidログレベルエラーで監視し、正規表現フィルターを使用せずにエラーを確認します。実際のエラーが表示されることを願っています。