-1

I have a android project using web services to get data from server. Initial, my project get data very ok. but something's wrong when I upgrade my project to api 11 or above, it show the error "Unfortunately myapp has stopped". Anybody give me some idea to fix it.

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.GUI.MainActivity"

            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

    </application>

</manifest>

The function to get data from server through web services:

public class getUserInfoBUS {


String URL = "http://10.0.2.2:8080/myproject/api/question/";


public UserTemp getUserInfo(String Username){
    UserTemp user = new UserTemp();
    HttpClient httpclient = new DefaultHttpClient();  
    HttpGet request = new HttpGet(URL);  
    try {  
        //Parse xml
        HttpEntity r_entity = httpclient.execute(request).getEntity();
        String xmlString = EntityUtils.toString(r_entity, HTTP.UTF_8);
        Log.d("result:::", xmlString) ;
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = factory.newDocumentBuilder();
        InputSource inStream = new InputSource();
        inStream.setCharacterStream(new StringReader(xmlString));
        Document doc = db.parse(inStream);  
        NodeList nl = doc.getElementsByTagName("userTemp");
        for(int i = 0; i < nl.getLength(); i++) {
            if (nl.item(i).hasChildNodes()) {

                config.User_ID=nl.item(i).getChildNodes().item(0).getTextContent();
                config.User_type_ID=nl.item(i).getChildNodes().item(1).getTextContent();
                user.Password = nl.item(i).getChildNodes().item(2).getTextContent();

            }
            Log.d("soluongnode:", i+"");

        }
    } catch (ClientProtocolException e) {  
        Log.d("exception:", e.toString()) ;
    } catch (IOException e) {  
        Log.d("exception:", e.toString());
    } catch (ParserConfigurationException e) {
        // TODO Auto-generated catch block
        Log.d("exception:", e.toString());
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        Log.d("exception:", e.toString());
    }  
    httpclient.getConnectionManager().shutdown();   
   return user;
}

And my logcat

04-23 19:08:20.711: E/Trace(777): error opening trace file: No such file or directory (2)
04-23 19:08:23.190: I/Choreographer(777): Skipped 54 frames!  The application may be doing too much work on its main thread.
04-23 19:08:23.360: D/gralloc_goldfish(777): Emulator without GPU emulation detected.
04-23 19:08:24.800: D/AndroidRuntime(777): Shutting down VM
04-23 19:08:24.800: W/dalvikvm(777): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-23 19:08:24.870: E/AndroidRuntime(777): FATAL EXCEPTION: main
04-23 19:08:24.870: E/AndroidRuntime(777): android.os.NetworkOnMainThreadException
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-23 19:08:24.870: E/AndroidRuntime(777):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-23 19:08:24.870: E/AndroidRuntime(777):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-23 19:08:24.870: E/AndroidRuntime(777):  at libcore.io.IoBridge.connect(IoBridge.java:112)
04-23 19:08:24.870: E/AndroidRuntime(777):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-23 19:08:24.870: E/AndroidRuntime(777):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-23 19:08:24.870: E/AndroidRuntime(777):  at java.net.Socket.connect(Socket.java:842)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-23 19:08:24.870: E/AndroidRuntime(777):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-23 19:08:24.870: E/AndroidRuntime(777):  at BusinessLogic.getUserListBUS.getUserList(getUserListBUS.java:46)
04-23 19:08:24.870: E/AndroidRuntime(777):  at com.example.GUI.MainActivity$1.onClick(MainActivity.java:75)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.view.View.performClick(View.java:4204)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.view.View$PerformClick.run(View.java:17355)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.os.Handler.handleCallback(Handler.java:725)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.os.Looper.loop(Looper.java:137)
04-23 19:08:24.870: E/AndroidRuntime(777):  at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 19:08:24.870: E/AndroidRuntime(777):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 19:08:24.870: E/AndroidRuntime(777):  at java.lang.reflect.Method.invoke(Method.java:511)
04-23 19:08:24.870: E/AndroidRuntime(777):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 19:08:24.870: E/AndroidRuntime(777):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 19:08:24.870: E/AndroidRuntime(777):  at dalvik.system.NativeStart.main(Native Method)
04-23 19:08:25.121: D/dalvikvm(777): GC_CONCURRENT freed 248K, 14% free 2537K/2924K, paused 9ms+59ms, total 267ms
04-23 19:08:30.850: I/Process(777): Sending signal. PID: 777 SIG: 9
04-23 19:13:21.790: E/Trace(843): error opening trace file: No such file or directory (2)
04-23 19:13:22.721: I/Choreographer(843): Skipped 249 frames!  The application may be doing too much work on its main thread.
04-23 19:13:22.741: D/dalvikvm(843): GC_CONCURRENT freed 145K, 10% free 2648K/2932K, paused 13ms+16ms, total 132ms
04-23 19:13:22.930: I/Choreographer(843): Skipped 175 frames!  The application may be doing too much work on its main thread.
04-23 19:13:23.040: D/gralloc_goldfish(843): Emulator without GPU emulation detected.
04-23 19:13:23.280: I/Choreographer(843): Skipped 219 frames!  The application may be doing too much work on its main thread.
04-23 19:13:52.530: D/AndroidRuntime(843): Shutting down VM
04-23 19:13:52.530: W/dalvikvm(843): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-23 19:13:52.580: E/AndroidRuntime(843): FATAL EXCEPTION: main
04-23 19:13:52.580: E/AndroidRuntime(843): android.os.NetworkOnMainThreadException
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-23 19:13:52.580: E/AndroidRuntime(843):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-23 19:13:52.580: E/AndroidRuntime(843):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-23 19:13:52.580: E/AndroidRuntime(843):  at libcore.io.IoBridge.connect(IoBridge.java:112)
04-23 19:13:52.580: E/AndroidRuntime(843):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-23 19:13:52.580: E/AndroidRuntime(843):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-23 19:13:52.580: E/AndroidRuntime(843):  at java.net.Socket.connect(Socket.java:842)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-23 19:13:52.580: E/AndroidRuntime(843):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-23 19:13:52.580: E/AndroidRuntime(843):  at BusinessLogic.getUserListBUS.getUserList(getUserListBUS.java:46)
04-23 19:13:52.580: E/AndroidRuntime(843):  at com.example.GUI.MainActivity$1.onClick(MainActivity.java:78)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.view.View.performClick(View.java:4204)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.view.View$PerformClick.run(View.java:17355)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.os.Handler.handleCallback(Handler.java:725)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.os.Looper.loop(Looper.java:137)
04-23 19:13:52.580: E/AndroidRuntime(843):  at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 19:13:52.580: E/AndroidRuntime(843):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 19:13:52.580: E/AndroidRuntime(843):  at java.lang.reflect.Method.invoke(Method.java:511)
04-23 19:13:52.580: E/AndroidRuntime(843):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 19:13:52.580: E/AndroidRuntime(843):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 19:13:52.580: E/AndroidRuntime(843):  at dalvik.system.NativeStart.main(Native Method)
04-23 19:14:01.671: E/Trace(866): error opening trace file: No such file or directory (2)
04-23 19:14:02.570: D/dalvikvm(866): GC_CONCURRENT freed 146K, 10% free 2650K/2936K, paused 16ms+22ms, total 112ms
04-23 19:14:02.590: I/Choreographer(866): Skipped 259 frames!  The application may be doing too much work on its main thread.
04-23 19:14:02.751: I/Choreographer(866): Skipped 143 frames!  The application may be doing too much work on its main thread.
04-23 19:14:02.781: D/gralloc_goldfish(866): Emulator without GPU emulation detected.
04-23 19:14:02.970: I/Choreographer(866): Skipped 161 frames!  The application may be doing too much work on its main thread.
04-23 19:14:03.460: I/Choreographer(866): Skipped 80 frames!  The application may be doing too much work on its main thread.
04-23 19:14:03.570: I/Choreographer(866): Skipped 50 frames!  The application may be doing too much work on its main thread.
04-23 19:14:04.260: D/AndroidRuntime(866): Shutting down VM
04-23 19:14:04.260: W/dalvikvm(866): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-23 19:14:04.310: E/AndroidRuntime(866): FATAL EXCEPTION: main
04-23 19:14:04.310: E/AndroidRuntime(866): android.os.NetworkOnMainThreadException
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-23 19:14:04.310: E/AndroidRuntime(866):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-23 19:14:04.310: E/AndroidRuntime(866):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-23 19:14:04.310: E/AndroidRuntime(866):  at libcore.io.IoBridge.connect(IoBridge.java:112)
04-23 19:14:04.310: E/AndroidRuntime(866):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-23 19:14:04.310: E/AndroidRuntime(866):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-23 19:14:04.310: E/AndroidRuntime(866):  at java.net.Socket.connect(Socket.java:842)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-23 19:14:04.310: E/AndroidRuntime(866):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-23 19:14:04.310: E/AndroidRuntime(866):  at BusinessLogic.getUserListBUS.getUserList(getUserListBUS.java:46)
04-23 19:14:04.310: E/AndroidRuntime(866):  at com.example.GUI.MainActivity$1.onClick(MainActivity.java:78)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.view.View.performClick(View.java:4204)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.view.View$PerformClick.run(View.java:17355)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.os.Handler.handleCallback(Handler.java:725)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.os.Looper.loop(Looper.java:137)
04-23 19:14:04.310: E/AndroidRuntime(866):  at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 19:14:04.310: E/AndroidRuntime(866):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 19:14:04.310: E/AndroidRuntime(866):  at java.lang.reflect.Method.invoke(Method.java:511)
04-23 19:14:04.310: E/AndroidRuntime(866):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 19:14:04.310: E/AndroidRuntime(866):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 19:14:04.310: E/AndroidRuntime(866):  at dalvik.system.NativeStart.main(Native Method)
04-23 19:14:18.130: D/dalvikvm(905): GC_CONCURRENT freed 149K, 10% free 2650K/2940K, paused 13ms+17ms, total 116ms
04-23 19:14:18.160: I/Choreographer(905): Skipped 268 frames!  The application may be doing too much work on its main thread.
04-23 19:14:18.341: I/Choreographer(905): Skipped 165 frames!  The application may be doing too much work on its main thread.
04-23 19:14:18.361: D/gralloc_goldfish(905): Emulator without GPU emulation detected.
04-23 19:14:18.590: I/Choreographer(905): Skipped 212 frames!  The application may be doing too much work on its main thread.
04-23 19:14:40.210: D/AndroidRuntime(905): Shutting down VM
04-23 19:14:40.210: W/dalvikvm(905): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-23 19:14:40.260: E/AndroidRuntime(905): FATAL EXCEPTION: main
04-23 19:14:40.260: E/AndroidRuntime(905): android.os.NetworkOnMainThreadException
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-23 19:14:40.260: E/AndroidRuntime(905):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-23 19:14:40.260: E/AndroidRuntime(905):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-23 19:14:40.260: E/AndroidRuntime(905):  at libcore.io.IoBridge.connect(IoBridge.java:112)
04-23 19:14:40.260: E/AndroidRuntime(905):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-23 19:14:40.260: E/AndroidRuntime(905):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-23 19:14:40.260: E/AndroidRuntime(905):  at java.net.Socket.connect(Socket.java:842)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-23 19:14:40.260: E/AndroidRuntime(905):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-23 19:14:40.260: E/AndroidRuntime(905):  at BusinessLogic.getUserListBUS.getUserList(getUserListBUS.java:46)
04-23 19:14:40.260: E/AndroidRuntime(905):  at com.example.GUI.MainActivity$1.onClick(MainActivity.java:78)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.view.View.performClick(View.java:4204)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.view.View$PerformClick.run(View.java:17355)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.os.Handler.handleCallback(Handler.java:725)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.os.Looper.loop(Looper.java:137)
04-23 19:14:40.260: E/AndroidRuntime(905):  at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 19:14:40.260: E/AndroidRuntime(905):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 19:14:40.260: E/AndroidRuntime(905):  at java.lang.reflect.Method.invoke(Method.java:511)
04-23 19:14:40.260: E/AndroidRuntime(905):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 19:14:40.260: E/AndroidRuntime(905):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 19:14:40.260: E/AndroidRuntime(905):  at dalvik.system.NativeStart.main(Native Method)
04-23 19:14:42.861: I/Process(905): Sending signal. PID: 905 SIG: 9
04-23 19:22:09.261: E/Trace(962): error opening trace file: No such file or directory (2)
04-23 19:22:10.110: D/dalvikvm(962): GC_CONCURRENT freed 149K, 10% free 2646K/2936K, paused 20ms+14ms, total 117ms
04-23 19:22:10.150: I/Choreographer(962): Skipped 267 frames!  The application may be doing too much work on its main thread.
04-23 19:22:10.320: I/Choreographer(962): Skipped 157 frames!  The application may be doing too much work on its main thread.
04-23 19:22:10.340: D/gralloc_goldfish(962): Emulator without GPU emulation detected.
04-23 19:22:10.550: I/Choreographer(962): Skipped 193 frames!  The application may be doing too much work on its main thread.
04-23 19:22:11.470: D/AndroidRuntime(962): Shutting down VM
04-23 19:22:11.470: W/dalvikvm(962): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-23 19:22:11.530: E/AndroidRuntime(962): FATAL EXCEPTION: main
04-23 19:22:11.530: E/AndroidRuntime(962): android.os.NetworkOnMainThreadException
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-23 19:22:11.530: E/AndroidRuntime(962):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-23 19:22:11.530: E/AndroidRuntime(962):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-23 19:22:11.530: E/AndroidRuntime(962):  at libcore.io.IoBridge.connect(IoBridge.java:112)
04-23 19:22:11.530: E/AndroidRuntime(962):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-23 19:22:11.530: E/AndroidRuntime(962):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-23 19:22:11.530: E/AndroidRuntime(962):  at java.net.Socket.connect(Socket.java:842)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-23 19:22:11.530: E/AndroidRuntime(962):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-23 19:22:11.530: E/AndroidRuntime(962):  at BusinessLogic.getUserListBUS.getUserList(getUserListBUS.java:46)
04-23 19:22:11.530: E/AndroidRuntime(962):  at com.example.GUI.MainActivity$1.onClick(MainActivity.java:78)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.view.View.performClick(View.java:4204)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.view.View$PerformClick.run(View.java:17355)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.os.Handler.handleCallback(Handler.java:725)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.os.Looper.loop(Looper.java:137)
04-23 19:22:11.530: E/AndroidRuntime(962):  at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 19:22:11.530: E/AndroidRuntime(962):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 19:22:11.530: E/AndroidRuntime(962):  at java.lang.reflect.Method.invoke(Method.java:511)
04-23 19:22:11.530: E/AndroidRuntime(962):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 19:22:11.530: E/AndroidRuntime(962):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 19:22:11.530: E/AndroidRuntime(962):  at dalvik.system.NativeStart.main(Native Method)
04-23 19:27:11.711: I/Process(962): Sending signal. PID: 962 SIG: 9

Please anybody give me some ideas to fix it, thanks!

shweta_jain
  • 453
  • 1
  • 5
  • 19
  • 1
    "NetworkOnMainThreadException" probably you're running your network operation on the UI thread. Do it for example in an AsyncTask or anyway not on the main thread. – fasteque Apr 23 '14 at 12:42
  • here, give me some advice plz – user3422449 Apr 23 '14 at 12:42
  • @fasteque how to fix it? – user3422449 Apr 23 '14 at 12:43
  • 2
    Look here: http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception – fasteque Apr 23 '14 at 12:43
  • Put your data fetching code inside AsyncTask – Jibran Khan Apr 23 '14 at 12:45
  • 1
    In API level 11, the default is to crash if you try to access the network on the main thread. In previous API levels, it's a bad idea, but it doesn't crash. The reason it's bad is that it freezes your entire app while the network operation happens. And if the network is slow, your app freezes for a significant time. Do your users a favour and fix the problem that Android is now making obvious (by performing network access on a different thread). – user253751 Apr 23 '14 at 12:53
  • please at the very least read your error – njzk2 Apr 23 '14 at 13:11
  • It's working, thanks everybody so much!!! – user3422449 Apr 23 '14 at 14:30

4 Answers4

0

add the following in your code.

 StrictMode.ThreadPolicy policy = newStrictMode.ThreadPolicy.Builder().permitAll().build();      
 StrictMode.setThreadPolicy(policy); 
Spring Breaker
  • 8,233
  • 3
  • 36
  • 60
Karthik
  • 2,282
  • 2
  • 22
  • 23
0

android.os.NetworkOnMainThreadException is thrown when an application attempts to perform a networking operation on its main thread. Run your code in AsyncTask:

private class MyAsyncTask extends AsyncTask<String, String, String>
            {

                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                }
                @Override
                protected String doInBackground(String... params) {

                   UserTemp user = new UserTemp();
                  HttpClient httpclient = new DefaultHttpClient();  
                  HttpGet request = new HttpGet(params[0]);  
                  try {  
                   //Parse xml
                    HttpEntity r_entity = httpclient.execute(request).getEntity();
                    String xmlString = EntityUtils.toString(r_entity, HTTP.UTF_8);
                    Log.d("result:::", xmlString) ;
                    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                    DocumentBuilder db = factory.newDocumentBuilder();
                    InputSource inStream = new InputSource();
                    inStream.setCharacterStream(new StringReader(xmlString));
                    Document doc = db.parse(inStream);  
                    NodeList nl = doc.getElementsByTagName("userTemp");
                    for(int i = 0; i < nl.getLength(); i++) {
                    if (nl.item(i).hasChildNodes()) {

                   config.User_ID=nl.item(i).getChildNodes().item(0).getTextContent();
               config.User_type_ID=nl.item(i).getChildNodes().item(1).getTextContent();
               user.Password = nl.item(i).getChildNodes().item(2).getTextContent();

            }
            Log.d("soluongnode:", i+"");

       }
         } catch (ClientProtocolException e) {  
          Log.d("exception:", e.toString()) ;
          } catch (IOException e) {  
         Log.d("exception:", e.toString());
         } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
          Log.d("exception:", e.toString());
          } catch (SAXException e) {
          // TODO Auto-generated catch block
          Log.d("exception:", e.toString());
          }  
         httpclient.getConnectionManager().shutdown(); 

                    return null ;
                }

                @Override
                protected void onPostExecute(String result) {
                    super.onPostExecute(result);             
                    //Update your UI here
            }

Execute the AsyncTask where ever required like following,

 String URL = "http://10.0.2.2:8080/myproject/api/question/";    
 new MyAsyncTask ().execute(URL); 
Spring Breaker
  • 8,233
  • 3
  • 36
  • 60
0

Add this code in to OnCreate() Method of your MainActivity.java class

 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

Edit Answer-

For Api Level>=11 you have to use AsyncTask

public class GetData extends AsyncTask<Void, Void, String>{

        String URL="http://10.0.2.2:8080/myproject/api/question/";

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(Void... params) {
            // TODO Auto-generated method stub

            //Put your http request code here.

            UserTemp user = new UserTemp();
            HttpClient httpclient = new DefaultHttpClient();  
            HttpGet request = new HttpGet(URL);  
            try {  
                //Parse xml
                HttpEntity r_entity = httpclient.execute(request).getEntity();
                String xmlString = EntityUtils.toString(r_entity, HTTP.UTF_8);
                Log.d("result:::", xmlString) ;
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder db = factory.newDocumentBuilder();
                InputSource inStream = new InputSource();
                inStream.setCharacterStream(new StringReader(xmlString));
                Document doc = db.parse(inStream);  
                NodeList nl = doc.getElementsByTagName("userTemp");
                for(int i = 0; i < nl.getLength(); i++) {
                    if (nl.item(i).hasChildNodes()) {

                        config.User_ID=nl.item(i).getChildNodes().item(0).getTextContent();
                        config.User_type_ID=nl.item(i).getChildNodes().item(1).getTextContent();
                        user.Password = nl.item(i).getChildNodes().item(2).getTextContent();

                    }
                    Log.d("soluongnode:", i+"");

                }
            } catch (ClientProtocolException e) {  
                Log.d("exception:", e.toString()) ;
            } catch (IOException e) {  
                Log.d("exception:", e.toString());
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                Log.d("exception:", e.toString());
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                Log.d("exception:", e.toString());
            }  
            httpclient.getConnectionManager().shutdown();   

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
        }

    }

And when you want to get data from server put following code line

new GetData().execute();

Hope this helps you.

shweta_jain
  • 453
  • 1
  • 5
  • 19
0

Till Donut it is used to create multiple threads from 1.6-2.3 that you was using before but if now you are using 3.0 or above then it is used to create single threaded model by using AsyncTask otherwise you ll get the NetworkOnMainThreadException.

Rohit Goswami
  • 617
  • 5
  • 17