電話でデバッグを実行しているときに、デバッガをAndroid Studioにアタッチできません。
現在、Android 4.4.4を実行しているSamsung S4を使用しています(ただし、さまざまなAndroidでS5、S6、S7、およびバージョン)。次のエラーのいずれかで実行しようとするとタイムアウトします。
I/System.out:WAITチャンクの送信
W/ActivityThread:アプリケーションは、ポート8100でデバッガーを待機しています...
または
デバッガーポートlocalhost:8600 Java.net.ConnectException "connection refused"を開けませんでした
そしてアプリは言います:
デバッガを待っています
アプリケーション(プロセス)は、デバッガーの接続を待機しています。
強制終了
Android Studioバージョン:
Android Studio 2.2.2
ビルド#AI-145.3360264、2016年10月18日にビルド
JRE:1.8.0_112-release-b05 x86_64
JVM:OpenJDK 64-Bit Server VM by JetBrains s.r.o
Macバージョン:
10.11.6(15G1004)
アプリケーションを正常に接続して実行できますが、[実行]> [アプリのデバッグ]> [接続された電話を選択]> [OK]を実行すると、デバッガをアタッチできません。
同じ携帯電話を使用して、他のコンピューター(WindowsとMacの両方)でデバッグでアプリを実行できました。
何時間ものデバッグとオンライン検索から試したさまざまなアプローチ:
キャッシュの無効化/再起動Android studio
ポート8100、8600、8601などで実行されている他のものを確認します。bashから次を実行しても何も返されません。
$ # while Android studio is trying to attach the debugger
$ lsof -i :8100
$ lsof -i :8600
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
studio 6282 peter 125u IPv4 0x973c7e31bda641ab 0t0 TCP 192.168.1.16:64022->ip-166-62-27-181.ip.secureserver.net:asterix(SYN_SENT)$ lsof -i:8601 $ $#after Android studioはデバッガーの接続に失敗します$ lsof -i:8100 $ lsof -i:8600 $ lsof -i:8601 $
実行ツール> Android> Androidデバイスモニター-デバイスは表示されますが、実行できませんAndroidデバイスモニターアプリをデバッグしようとしていますが、「ADB統合を有効にするためにモニターが閉じられます。続行しますか?」と表示されます。
Adbプロセスの検索と強制終了
ps aux | egrep '(adb|Java)'
... then doing `kill <pid>` or `kill -9 <pid>` if necessary for the found ones
再起動Android studio
コンピューターを再起動します
更新Java Oracle WebサイトからのJDK —ただし、理由はわかりませんAndroid Studioは、「JVM:OpenJDK 64-Bit Server VM by JetBrains sro "
完全にアンインストールして再インストールしますAndroid studio- https://stackoverflow.com/a/18458893/376489 -奇妙なことに、これは1回実行するとうまくいったと思いますデバッガー、そして再び…
[実行]> [デバッガーをAndroid Processに接続しました-これは役に立ちませんでした
実行してみました:
~/Library/Android/sdk/platform-tools/adb kill-server &&
~/Library/Android/sdk/platform-tools/adb start-server
[実行]> [構成の編集]> [実行/デバッグ構成]> [APKが変更されていない場合はインストールをスキップする]をオフにしてみました
[システム環境設定]> [セキュリティとプライバシー]> [ファイアウォール]を確認します-これはオフになっています
更新1:電話の許可を取り消して再起動してみました
更新1:すべてのブレークポイントをミュートAndroid Studio
上記で追加した詳細に、間違っている可能性のあるものや意味のあるものについて他のアイデアはありますか?
かなり恥ずかしいですが、localhost
として何かをテストするために/ etc/hostsファイルにipアドレスを入力し、それを削除したことがないようです。/etc/hostsに次のものがあることを確認するコメントを別の投稿に見つけました。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
その偽の行をコメントアウトすると、デバッガは現在動作しています。そのファイルに12個ほどの他のIPがあるため(フレンドリ名でリモートホストをより簡単にテストできます)、一番下にあることに気付かなかったに違いありません。これが問題であるかどうかを検証するためのより確実なアプローチは、localhostにpingを実行し、127.0.0.1のIPアドレスに解決されることを確認することだと思います
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
ここにいる他の人々からの素晴らしいコメントと提案、ありがとう!
私も同じエラーが発生し、このことは私のために働いた
1. Open Android Studio -> Terminal
2. Change directory to $Android SDK Path$\platform-tools
3. Write command adb get-state and hit enter.
次に、この出力を取得します
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
1.プロジェクトのクリーニングを試してくださいBuild-> clean project
2.doファイル->無効/キャッシュの再起動は上記の場合に役立ちます。
3.携帯電話の接続に使用しているデータケーブルを変更してみてください。
上記が役に立たない場合は、Android wifi ADBプラグインをインストールし、wifi経由でデバッグを実行してください。
真のデバッグビルドのサポート 。開発者は、Android:debuggable属性をマニフェスト内のタグに追加する必要がなくなりました—ビルドツールは属性を自動的に追加します。 Eclipse/ADTでは、すべてのインクリメンタルビルドはデバッグビルドであると想定されているため、ツールはAndroid:debuggable = "true"を挿入します。署名付きリリースビルドをエクスポートする場合、ツールは属性を追加しません。 Antでは、antデバッグコマンドは自動的にAndroid:debuggable = "true"属性を挿入しますが、antリリースは挿入しません。 Android:debuggable = "true"が手動で設定されている場合、antリリースはリリースビルドではなくデバッグビルドを実際に実行します。
私の場合、私は5時間でこの問題に苦労しており、
minifyEnabled true
が主犯なので、変更minifyEnabled false
私のために働く
私のアプリのbuild.gradleファイルは次のようになります
buildTypes {
debug {
signingConfig signingConfigs.debug
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
私は実際のデバイスを使用しています。デバイスでアプリを削除し、Android Studioから実行するだけでこの問題は解決しました。
Android Studioは、すでに電話にあったファイルを上書きするのに問題があったようです。
Android Studio 3.3、wi-fi接続された電話をデバッグしようとすると反対の問題があります。
Android Studioでデバイスを選択すると、次のメッセージが表示されます。
'app'の実行エラー:デバッガーポートを開くことができません(localhost:8600):Java.net.ConnectException "Connection refused:connect"
ネットワークでIPV-6も有効にしています。
問題は、デフォルトでは「localhost」が私のマシンでは:: 1に解決されるが、ADBは127.0.0.1に明示的にバインドすることです。これは、ADBをリモートマシンで実行しているエミュレーターに接続しようとして1日を費やしたためです(残念ながらAndroid 4.4以降ではありません。
問題を解決するには、次の行を\ windows\system32\drivers\etc\hostsに追加します。
127.0.0.1 localhost
Googleピクセルの第1世代を使用せず、新しいNokia 7プラスを使用するだけで、この問題が修正されました。
端末で以下のコマンドを使用してみてください
adb kill-server
adb start-server
うまくいきます。