-2

so I'm following some tutorials online to learn how to make apps. and I got this NetworkOnMainThreadException poping out, I did some researc, and I found that I had to create an AsynTask class, and override the methode doInBackground, I did that, but I still got the MainThreadException

can you guys point me out what I'm doin wrong ? and why is it wrong ?

here's my codes :

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_list);

        GetPostTask getPost = new GetPostTask();
        getPost.execute();


//        Toast.makeText(this, getString(R.string.no_items), Toast.LENGTH_LONG).show();
    }

and the AsynTask class :

  private class GetPostTask extends AsyncTask<Object, Void, String> {

        @Override
        protected String doInBackground(Object... params) {
            int responseCode = -1;

            try {
                URL blogFeedUrl = new URL("http://blog.teamtreehouse.com/api/get_recent_summary/?count=" + NUMBER_OF_POSTS);
                HttpURLConnection connection = (HttpURLConnection)blogFeedUrl.openConnection();
                connection.connect();

                responseCode = connection.getResponseCode();
                Log.i(TAG, "Code" + responseCode);

            } catch (MalformedURLException e) {
                Log.e(TAG, "Error making URL : ", e);
            } catch (IOException e) {
                Log.e(TAG, "Error making Connection : ", e);
            } catch (Exception e) {
                Log.e(TAG, "Error General ====================================: ", e);
            }
            return "Code :" + responseCode;
        }
    }

giving me this error :

03-03 19:40:51.900    2119-2119/? E/MainListActivity﹕ Error General ====================================:
    android.os.NetworkOnMainThreadException
            at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)
            at java.net.InetAddress.lookupHostByName(InetAddress.java:431)
            at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
            at java.net.InetAddress.getAllByName(InetAddress.java:215)
            at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
            at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
            at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
            at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
            at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
            at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
            at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
            at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
            at com.onarap.blogread.MainListActivity.onCreate(MainListActivity.java:27)
            at android.app.Activity.performCreate(Activity.java:6237)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

1 Answers1

1

Are you sure you're running the right code?

Your stack trace indicates you are making a network call from onCreate:

at com.onarap.blogread.MainListActivity.onCreate(MainListActivity.java:27)

Make sure you are building the same code you posted here and that the network call is only in the doInBackground method.

Francesc
  • 25,014
  • 10
  • 66
  • 84
  • Ooh yeah, I didn't even realised that. But how can I manage that ? It seems like my file is saved, I don't have any other code openned, and when I clic on Run, it's saying that the call is made on MainListActivity.java:27, when there's nothing written on line 27 :/ – Vincent 'On-arap' Burel Mar 03 '16 at 22:07
  • Clean your build to make sure you're running the right code. – Francesc Mar 03 '16 at 22:36