AndroidプラットフォームのEclipse経由でのDebugについて

1,217 views
Skip to first unread message

nekomeshi

unread,
Apr 4, 2010, 4:21:05 AM4/4/10
to Android-Embedded-Japan
お世話になります。大槻と申します。

Beagleboard RevC4にdonutを入れて動かしています。Ubuntu9.04上のEclipseからプラットフォームのデバッグをし
ようと、
http://source.android.com/using-eclipse
を参考にして環境を整えようとしているところです。

BeagleboardにはUSBのOTGポートに接続しており、adbおよびDDMSは接続できています(コマンドラインおよびEclipseの
ADT経由ともに)。

Eclipseにdonutのプロジェクトを読み込ませ、USB経由ならEmulatorと同じかと、上記サイトの"Debugging the
emulator with Eclipse"の記述に従ってHostにlocalhost ポートに 8700を指定してデバッグを実行すると、
「Failed to connect to remote VM
com.sun.jdi.connect.spi.ClosedConnectionException」
というエラーが出て接続できません。

Webを探してみると、同じような現象に会われている方もいらっしゃるようですが、解決策までは見つかってないようです。

どなたか解決方法をご存じないでしょうか。

よろしくお願いします。

nekomeshi

unread,
Apr 6, 2010, 3:52:25 AM4/6/10
to Android-Embedded-Japan
お世話になります。 大槻です。

やっぱり解決方法をご存じの方、いらっしゃらないようですね。
ちなみに皆様はプラットフォーム開発をどのような環境でされているのでしょうか。
MSのVisual Studio出身なため、統合環境の中でブレークポイントを設定したり
してDebugできれば楽なのですが、たとえばこちらのサイトに載っている方法が
スタンダードだよ、といった情報をご存じの方いらっしゃいましたら、教えていたけ
ませんでしょうか。

よろしくお願いします。

Atsuo Igarashi

unread,
Apr 6, 2010, 4:19:17 AM4/6/10
to Android-Embedded-Japan
五十嵐と申します。

探せば情報があるのかもしれませんが、
恐らく、ホスト側にBeagleBoardのUSBに対応したドライバが必要だと思います。

ちゃんとしたやり方はわかりませんが、コマンドプロンプトから

> adb connect 192.168.x.xx:5555

とadbでネットワーク接続すると、eclipseから認識できますので、
デバッグは可能になります。

五十嵐

nekomeshi

unread,
Apr 7, 2010, 10:33:41 AM4/7/10
to Android-Embedded-Japan
大槻です。

五十嵐様、情報ありがとうございます。

On 4月6日, 午後5:19, Atsuo Igarashi <atsuoigara...@gmail.com> wrote:
> 探せば情報があるのかもしれませんが、
> 恐らく、ホスト側にBeagleBoardのUSBに対応したドライバが必要だと思います。

USBのOTGについては、adb, DDMSで接続できているので大丈夫だと
思っています。

> ちゃんとしたやり方はわかりませんが、コマンドプロンプトから
>
> > adb connect 192.168.x.xx:5555

こちらも試してみましたが、
unable to connect to 192.168.0.6:5555
といわれて接続できませんでした。ubuntuのufwとWindowsのfirewallは止めています。

実はLAN経由でのDebugも何度か試したのですがうまくいかずにいたので、いずれ
質問させていただこうと思っていました。
有線LANはBeagleboardのUSB HOSTにセルフパワーのUSBHUB経由でメルコのLUA-TXというUSB-LANアダプタを
使用しています。AndroidからはWebブラウザでwww.google.co.jp等の外のサイトが表示できています
ので、LAN自体はちゃんと動いていると思います。

で、HOSTであるubuntuからbeagleboardにポート番号1から65535すべてに対してポートスキャンをかけて
みましたが、どのポートも開いていないようで、何か設定を忘れているのだろうな
と思っているのですが、それが何だかちょっとわかりません。

もしご存じの方いらっしゃいましたら、ヒントをいただけませんでしょうか。

よろしくお願いします。

Atsuo Igarashi

unread,
Apr 7, 2010, 8:58:27 PM4/7/10
to Android-Embedded-Japan
五十嵐です。

USBのほうも接続出来ていそうなので、設定のApplications->Development
->USB debuggingはチェックされていますよね。
ただ、localhostだとエミュレータしか指さないと思いますが、他の指定は
ないのでしょうか。

USBのほうはちょっとわかりませんが、ネットワークのほうでは
環境がまったく私と同じなので、私の場合は以下のように見えています。

PORT STATE SERVICE
5555/tcp open freeciv

なにかがちがうようですが、androidは最新でしょうか。

五十嵐

mizmit1222

unread,
Apr 7, 2010, 9:44:39 PM4/7/10
to Android-Embedded-Japan
みずのです。

adbのUSBとLANは排他です。USBが生きているとLAN側は閉じている
と思います。

$ adb shell getprop ro.secure

1が返ってくるのであれば、/default.propなどを見直して、0を設定して
みてはいかがでしょうか。ro.secureが0だと、LANからadb接続できる
はずです。

$ export ADBHOST=192.168.0.xx
$ adb kill-server
$ adb start-server
$ adb shell
#

このようにしてrootで入れるようになると思います。

ただ、これとフレームワークのデバッグをEclipseで行うこととは別の
問題です。Eclipseでフレームワークのビルドができないため、デバッ
グを行う手法は残念ながら知りません。android-portingなどのMLで
読んだことがあるような気もするのですが、発掘出来ませんでした。

ではでは。

mizmit1222

unread,
Apr 7, 2010, 9:50:41 PM4/7/10
to Android-Embedded-Japan
みずのです。

気を取り直して検索してみました。

Remote Java Debugging
http://groups.google.com/group/android-platform/browse_thread/thread/b0b59f3c21d6e77c/6d941409daefaceb?lnk=gst&q=Eclipse#6d941409daefaceb

classpath
http://groups.google.com/group/android-platform/browse_thread/thread/52e12eb89fe68cec/479e3d732bec8696?lnk=gst&q=Eclipse#479e3d732bec8696

このあたりを組み合わせるとうまく行くかもしれません。

ではでは。

nekomeshi

unread,
Apr 7, 2010, 11:33:28 PM4/7/10
to Android-Embedded-Japan
みずの様

お世話になります。大槻です。
情報ありがとうございます。拝見させていただいたところ、この二つを組み合わせてまとめたのが
http://source.android.com/using-eclipse

のような感じですね。USBとLANは排他とのことですので一度教えていただいた
方法を試してみようと思います。
五十嵐様との違いもこのあたりかもしれません。

ただ実際はEclipseでフレームワークのデバッグは普通やらない、という
ことなんでしょうね。androidフレームワークのデバッグの一般的な
やり方、というのがわからなかったもので・・・

ありがとうございました。

On 4月8日, 午前10:50, mizmit1222 <mizmit1...@gmail.com> wrote:
> みずのです。
>
> 気を取り直して検索してみました。
>
> Remote Java Debugginghttp://groups.google.com/group/android-platform/browse_thread/thread/...
>
> classpathhttp://groups.google.com/group/android-platform/browse_thread/thread/...

nekomeshi

unread,
Apr 10, 2010, 1:34:27 AM4/10/10
to Android-Embedded-Japan
お世話になります。大槻です。

USBでデバッグはできるのですが、LAN経由で普通にやってadbがつながらないのが気持ち悪くて
引き続き調べています。

On 4月8日, 午後12:33, nekomeshi <nekomeshi...@gmail.com> wrote:
> のような感じですね。USBとLANは排他とのことですので一度教えていただいた
> 方法を試してみようと思います。

/devault.propをみてみましたが、

# cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.service.adb.enable=1

とありますので、特に問題ないように思います。
また五十嵐様がご指摘くださいました、Applications->Development ->USB debugging
のチェックも再確認しました。

USB OTGのケーブルは抜いた状態でブートし、LANはブート後にシリアルコンソールから
netcfg eth0 dhcp で起動させています。(IPアドレスが変わった場合は、ADBHOSTは設定し直しています)

adbがopen下後にLANがつながるのがまずいのかと、netcfgをやってLANをつないだ後
androidのsetupからUSB debugging のoff/onをしてadb を再度オープンさせても
状況は変わらないようです。

ホストからkill-server/start-serverをやってもadb devicesでemulatorが表示
されないため、ネットワークの設定が何かおかしいんだと思いますが・・・

不思議です・・・

hirokuma ueno

unread,
Apr 11, 2010, 4:52:49 AM4/11/10
to android-emb...@googlegroups.com
こんにちは。

> USBでデバッグはできるのですが、LAN経由で普通にやってadbがつながらないのが気持ち悪くて
> 引き続き調べています。

うちも LAN経由に接続ができていませんでしたが、
service.adb.tcp.port が設定されていませんでした。

$ setprop service.adb.tcp.port 5555

などとすると使えるようになりました。
同じかどうかわかりませんが、ご参考までに。

--
//ueno

nekomeshi

unread,
Apr 12, 2010, 12:01:05 PM4/12/10
to Android-Embedded-Japan
おせわになります。大槻です。

uenoさま、アドバイスありがとうございます。
結論としてはうまくいきました。

$ setprop service.adb.tcp.port 5555

でうまくいかなかったため service.adb.tcp.port でググったところ、
http://letsgoustc.spaces.live.com/
にて、donutでは /dev/android_usb or /dev/android があれば USBでつなぐ、と
ありましたので/devの下をのぞいたところ android-adb とandroid-adb-enableの二つが
ありました。この二つを削除しadbdを再起動したところポート5555が開いて、
adb kill-server/start-server でemulatorが起動しました。

ま、だからといってEclipseからdebugをかけると「Failed to connect to remote VM
com.sun.jdi.connect.spi.ClosedConnectionException」と出るのは変わらないのですが、
すっきりしました。

勉強になりました。ありがとうございました。

Reply all
Reply to author
Forward
0 new messages