-3

This error is occure on only emulator but completely run on mobile...

error

07-30 05:38:09.024: E/AndroidRuntime(941): android.os.NetworkOnMainThreadException

07-30 05:38:09.024: E/AndroidRuntime(941):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)

07-30 05:38:09.024: E/AndroidRuntime(941):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)

07-30 05:38:09.024: E/AndroidRuntime(941):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)

07-30 05:38:09.024: E/AndroidRuntime(941):  at libcore.io.IoBridge.connect(IoBridge.java:112)

07-30 05:38:09.024: E/AndroidRuntime(941):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)

07-30 05:38:09.024: E/AndroidRuntime(941):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)

07-30 05:38:09.024: E/AndroidRuntime(941):  at java.net.Socket.connect(Socket.java:842)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)

07-30 05:38:09.024: E/AndroidRuntime(941):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
STT LCU
  • 4,348
  • 4
  • 29
  • 47
The Ray of Hope
  • 738
  • 1
  • 6
  • 16
  • Run your network thread in asynctask or in a service. – Tarun Jul 30 '13 at 06:31
  • 1
    This error occurs when you run network task on ui thread (main) from 3.0 or above shift nw task to async task do in background (your device android verssin m8 b less than 3.0 - honey comb) – Athul Harikumar Jul 30 '13 at 06:31
  • This is not JSON error. it means that you are trying network call on it Main thread.Its an exception added from 4.0 version in android. try use other thread or AsyncTask for network call. – Armaan Stranger Jul 30 '13 at 06:32

2 Answers2

3

You cannot perform network IO on the UI thread on Honeycombe. Technically it is possible on earlier versions of Android, but is a really bad idea as it will cause your app to stop responding, and can result in the OS killing your app for being badly behaved. You'll need to run a background process or use AsyncTask to perform your network transaction on a background thread.

But still then if you wish to force you app to do it then use the following piece of code,

if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();

            StrictMode.setThreadPolicy(policy);
        }

But again its not recommendable to use. Read this link for further info.

Community
  • 1
  • 1
Spring Breaker
  • 8,233
  • 3
  • 36
  • 60
1

This error because of network related operations on main thread, from android ICS version on-wards network related code should be run inAsyncTask ..

private class MyTask extends AsyncTask<Void , Void, Void > {

   private Exception exception;

   protected Void doInBackground(Void... urls) {      
      // your code here    
   }

   protected void onPostExecute(Void feed) {

   }
}

call the asynctask like this

MyTask task = new MyTask ();
task.execute();
leoneboaventura
  • 415
  • 1
  • 3
  • 13
RajaReddy PolamReddy
  • 22,428
  • 19
  • 115
  • 166