Launch error: リモート VM に接続できませんでした

Android開発をしていて、ある時からアプリのデバッグ起動で次のようなエラーが出て固まるようになりました。


[2011-08-03 19:14:42 - com.example.testapp] ------------------------------
[2011-08-03 19:14:42 - com.example.testapp] Android Launch!
[2011-08-03 19:14:42 - com.example.testapp] adb is running normally.
[2011-08-03 19:14:42 - com.example.testapp] Performing com.example.testapp.First activity launch
[2011-08-03 19:14:42 - com.example.testapp] Automatic Target Mode: using device 'CB511J0W90'
[2011-08-03 19:14:42 - com.example.testapp] Uploading com.example.testapp.apk onto device 'CB511J0W90'
[2011-08-03 19:14:42 - com.example.testapp] Installing com.example.testapp.apk...
[2011-08-03 19:14:45 - com.example.testapp] 成功!
[2011-08-03 19:14:45 - com.example.testapp] Starting activity com.example.testapp.First on device CB511J0W90
[2011-08-03 19:14:45 - com.example.testapp] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.testapp/.First }
[2011-08-03 19:14:45 - com.example.testapp] Attempting to connect debugger to 'com.example.testapp' on port 8610
[2011-08-03 19:14:45 - com.example.testapp] Launch error: リモート VM に接続できませんでした

ポート8610番につなげない、と言われているので調べてみる。

C:\>netstat -an -p tcp 
 ~略~
 TCP    127.0.0.1:8600         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8601         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8602         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8603         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8604         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8605         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8606         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8607         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8608         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8609         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8610         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8612         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8613         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8614         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8615         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8616         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8620         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8621         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8622         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8623         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8624         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8626         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8627         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:8629         0.0.0.0:0              LISTENING
 ~略~

と(やたらLISTENしているポートが多いのが気になるものの)ちゃんと開いているように見える。
ポートが空いてるのは確認できたが、firewallの影響を受けているかもしれないのでさらにしつこくjdbデバッガで調べてみる。

C:\>jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8610
uncaught java.lang.Throwable を設定しました
保留した uncaught java.lang.Throwable を設定しました
jdb の初期化中です...
> 

問題なくつなげたので一旦quitを入力して終了。
これで繋げなければJava VM側やネットワークの問題の可能性がありましたが、
これで原因はEclipseの可能性が高いということに。

改めてEclipseの設定を確認すると…

一般 → ネットワーク設定 → プロキシーのバイパスでプロキシが設定されていて、しかもlocalhost, 127.0.0.1 のプロキシが有効になってしまっていました。
これじゃ繋がるわけないわな。

アクティブ・プロバイダーが「ネイティブ」になっていて変更できなかったため「直接」に変更した上で上記2つのチェックを外した所無事解決。