ページ 11

Xamarin(C#)の実機デバッグ

Posted: 2016年9月11日(日) 15:20
by タンタル
C言語ではありませんがよろしくお願いします。

現在の状況
・Visual Studio 2015 Communityを使用し、Xamarin(C#)でAndroid開発を行っている。
・PC側(C#のフォームアプリ)に対して、Android側でtcp通信(System.Net.Sockets.TcpClientとTcpListener)を使用してデータを送信する。
・Android Virtual Device Managerで立ち上げたエミュレータからは、意図したとおりにデータを送ることができる。フォームアプリでもデータを受信できている。

問題点
・PCに実機(android端末:nexus 5)をつなげて実機デバッグを行うときに、データを送信してもタイムアウトになってしまう。フォームアプリ側も反応なし。
(どうでもいいことですが、実機デバッグを行うと、ブレークポイントで止まらないのは仕様?)


エミュレータと実機で実はパーミッションの別設定をしないといけないとか、
まさかアクセスポイントが違うとか...
エミュレータで動くにもかかわらず実機では動かないのは、どのような原因が考えられますか。

よろしくお願いします。

Re: Xamarin(C#)の実機デバッグ

Posted: 2016年9月17日(土) 02:10
by タンタル
自己解決しました。
PC側のファイアーウォールが原因だったようで、PC側の設定で指定ポートのTCP受信を許可することで無事データの受け渡しができました。
(気づいてしまえばなんて当たり前なことだったんだろうと思いますが...)

その他行ったこととして、Androidではネットワーク通信のような時間のかかる処理は、別スレッドに分けないとエラーになるということで、
Visual Studioにもログでメインスレッドの過負荷を指摘するものがあったため、送信箇所を別スレッドで行うようにしました。


わざわざまた掘り返して報告するほどのことではなかったかもしれませんが、一応記録として残しておきたいと思います。
ありがとうございました。