1

サーバーからの応答を読み取ることができず、「 android.os.NetworkOnMainThreadException 」エラーが発生しました。

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 文字列 serverResponse = in.readLine();

 W/System.err(1212):        android.os.NetworkOnMainThreadException                                                
 W/System.err(1212):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)       
 W/System.err(1212):    at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:163)                             
 W/System.err(1212):    at libcore.io.IoBridge.recvfrom(IoBridge.java:506)                                     
 W/System.err(1212):    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)                             
 W/System.err(1212):    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)                        
 W/System.err(1212):    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240) 
4

2 に答える 2

0

Android ドキュメントによると、すべてのネットワーク処理コードをメイン スレッドに配置しないでください。新しいバージョンではなく、古いバージョンで機能します。そのため、スレッドまたは非同期タスクを使用してください。

于 2013-11-13T10:03:58.433 に答える
-1

インターネットからデータを取得しているため、このコードをorのdoInBackgroundメソッドに移動します。インターネットへの呼び出しは、UI スレッドではなくバックグラウンド スレッドで行う必要があります。そうしないと、エラーが発生します。AsyncTaskThread

于 2013-11-13T10:02:44.883 に答える