JavaMPDという、MPDクライアントのためのJavaライブラリがあります。
これを使ってAndroid向けのクライアントアプリをつくろうとしたのですが、MPDconnectionExceptionが出て起動しない。
その解決法をメモします。
最初どう書いたか
Activity内のonCreateに、こんなかんじで書きました。
1 2 3 4 5 6 7 8 9 10 11 |
|
ボタンを押すとadd_mpdを実行するという単純なActivityです。 add_mpdは、最初このように書きました。
1 2 3 4 5 6 |
|
これでコネクションが確立すれば、ログにMPDのバージョンが出力されるはずでした。
これでは何故か、エラーが出て強制終了されます。
解決法
強制終了される現象は、Threadを用いることで解消出来ました。
変更後のadd_mpdはこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Androidは処理のスレッドや、同期、非同期をしっかり指定してあげないとエラーが起こりますね。
確か、HttpGetなんかを扱った時もこんなかんじでした。
非同期処理にしてもいいので、AsyncTaskなんか使ってもいいでしょう。てか、おそらくそっちのほうが推奨ですね。
無知が招いた悲劇でした。
追伸
公式サイトはここなんですが、重すぎてアクセス出来ないので、Google翻訳を通して閲覧するのをおすすめします。
JavaDocはここでも見ることができます。
参考
http://stackoverflow.com/questions/12165829/progressdialog-wont-show-up