-2

Why is it that I am unable to run "HttpResponse response = client.execute(request);" inside the Async method(doInBackground).... because everytime I run my code i always get an error on where it says "HttpResponse response = client.execute(request);" ..... And yes I have included the - "


    These are the Logcat:

10-30 13:14:11.459: E/Trace(795): error opening trace file: No such file or directory (2)
10-30 13:14:11.950: D/dalvikvm(795): GC_FOR_ALLOC freed 101K, 8% free 2666K/2888K, paused 67ms, total 69ms
10-30 13:14:11.989: I/dalvikvm-heap(795): Grow heap (frag case) to 3.791MB for 1127536-byte allocation
10-30 13:14:12.110: D/dalvikvm(795): GC_FOR_ALLOC freed 2K, 6% free 3765K/3992K, paused 120ms, total 120ms
10-30 13:14:12.210: D/dalvikvm(795): GC_CONCURRENT freed <1K, 6% free 3785K/3992K, paused 10ms+7ms, total 100ms
10-30 13:14:12.489: D/libEGL(795): loaded /system/lib/egl/libEGL_emulation.so
10-30 13:14:12.489: D/(795): HostConnection::get() New Host Connection established 0x2a150a28, tid 795
10-30 13:14:12.561: D/libEGL(795): loaded /system/lib/egl/libGLESv1_CM_emulation.so
10-30 13:14:12.570: D/libEGL(795): loaded /system/lib/egl/libGLESv2_emulation.so
10-30 13:14:12.710: W/EGL_emulation(795): eglSurfaceAttrib not implemented
10-30 13:14:12.750: D/OpenGLRenderer(795): Enabling debug mode 0
10-30 13:14:13.000: I/Choreographer(795): Skipped 39 frames!  The application may be doing too much work on its main thread.
10-30 13:14:21.529: D/dalvikvm(795): GC_CONCURRENT freed 41K, 4% free 4132K/4292K, paused 19ms+6ms, total 109ms
10-30 13:14:21.673: D/Testing(795): onCreateView(LayoutInflater inflater, viewGroup container, Bundle savedInstanceState
10-30 13:14:21.821: I/System.out(795): testing 12, testing 12
10-30 13:14:21.821: D/still inside the onCreateView()(795):  Button testButton has initialised successfully
10-30 13:14:21.821: D/.......||(795): ||.........
10-30 13:14:21.821: V/TextView sTatusComment1= (TextView)v.findViewById(R.id.textView4);(795): ...
10-30 13:14:21.821: D/sTatusComment1.setText(Please enter option(795):  success)
10-30 13:14:24.880: D/just entered(795):  onClick(View v)
10-30 13:14:24.889: D/REST_code REST_obj:(795):  initialised successfully!)
10-30 13:14:24.889: D/boolean invalidValue=true(795):  initialised successfully!)
10-30 13:14:24.909: D/int executionOtion = 99;(795):  initialised successfully!)
10-30 13:14:24.920: V/executionOption(795): 99
10-30 13:14:24.920: D/if (invalidValue==true) {(795):  successfully!)
10-30 13:14:24.920: D/try clause(795):   successfully!)
10-30 13:14:24.930: V/sTatus =(795): 3
10-30 13:14:24.930: D/......................(795):   ....................
10-30 13:14:24.930: V/executionOption(795): 3
10-30 13:14:24.930: V/executionOption =(795): 3
10-30 13:14:24.930: D/OPTION 1 BYPASSED!!(795):   successfully!)
10-30 13:14:24.930: D/executionOption == 99 else {(795): successfull
10-30 13:14:24.930: D/REST_object.oauth2Login()(795):  BANG !!!!
10-30 13:14:24.930: D/if (executionOption >=2(795):  BANG !!!  BANG !!! 
10-30 13:14:24.930: D/if (executionOption >=2(795):  BANG !!!  BANG !!! BANG  !! 
10-30 13:14:24.939: D/JUST BEFORE  new CopyOfREST_code(executionOption);(795):  TESTING 
10-30 13:14:24.949: D/INSIDE(795): public CopyOfREST_code (int executionOption2) 
10-30 13:14:24.949: D/JUST BEFORE(795): if( executionOption ==99) 
10-30 13:14:24.949: D/INSIDE(795): } else {
10-30 13:14:24.949: D/_______________ Login _______________(795): _______________ Login _______________
10-30 13:14:24.949: I/System.out(795): _______________ Login _______________
10-30 13:14:24.959: D/_______________ Login _______________(795): _______________ Login _______________
10-30 13:14:24.989: I/System.out(795): Enviado: grant_type=password&username=demo@demo.com&password=passwordTOKEN&client_id=CONSUMER_KEY&client_secret=CONSUMER_SECRET
10-30 13:14:24.989: D/BEFORE >>(795): response = httpClient.execute(httpPost);
10-30 13:14:25.081: D/AndroidRuntime(795): Shutting down VM
10-30 13:14:25.081: W/dalvikvm(795): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
10-30 13:14:25.129: E/AndroidRuntime(795): FATAL EXCEPTION: main
10-30 13:14:25.129: E/AndroidRuntime(795): android.os.NetworkOnMainThreadException
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
10-30 13:14:25.129: E/AndroidRuntime(795):  at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
10-30 13:14:25.129: E/AndroidRuntime(795):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
10-30 13:14:25.129: E/AndroidRuntime(795):  at java.net.InetAddress.getAllByName(InetAddress.java:214)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-30 13:14:25.129: E/AndroidRuntime(795):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-30 13:14:25.129: E/AndroidRuntime(795):  at com.example.nettec.CopyOfREST_code.oauth2Login(CopyOfREST_code.java:244)
10-30 13:14:25.129: E/AndroidRuntime(795):  at com.example.nettec.CopyOfREST_code.<init>(CopyOfREST_code.java:144)
10-30 13:14:25.129: E/AndroidRuntime(795):  at com.example.nettec.FragmentTwo.onClick(FragmentTwo.java:247)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.view.View.performClick(View.java:4204)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.view.View$PerformClick.run(View.java:17355)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.os.Handler.handleCallback(Handler.java:725)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.os.Handler.dispatchMessage(Handler.java:92)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.os.Looper.loop(Looper.java:137)
10-30 13:14:25.129: E/AndroidRuntime(795):  at android.app.ActivityThread.main(ActivityThread.java:5041)
10-30 13:14:25.129: E/AndroidRuntime(795):  at java.lang.reflect.Method.invokeNative(Native Method)
10-30 13:14:25.129: E/AndroidRuntime(795):  at java.lang.reflect.Method.invoke(Method.java:511)
10-30 13:14:25.129: E/AndroidRuntime(795):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-30 13:14:25.129: E/AndroidRuntime(795):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-30 13:14:25.129: E/AndroidRuntime(795):  at dalvik.system.NativeStart.main(Native Method)
10-30 13:14:25.279: D/dalvikvm(795): GC_CONCURRENT freed 141K, 6% free 4484K/4744K, paused 5ms+14ms, total 163ms



    -------------------------------------------------------------

Below  is the ASYNC CLASS CODE:

        package com.example.nettec;

        import java.io.BufferedReader;

        import java.io.InputStream;
        import java.io.InputStreamReader;
        import java.io.IOException;
        import java.io.UnsupportedEncodingException;

        import org.apache.http.Header;
        import org.apache.http.HttpResponse;
        import org.apache.http.client.HttpClient;
        import org.apache.http.client.methods.HttpGet;
        import org.apache.http.client.methods.HttpPost;
        import org.apache.http.entity.StringEntity;
        import org.apache.http.impl.client.DefaultHttpClient;
        import org.apache.http.message.BasicHeader;
        import org.apache.http.util.EntityUtils;
        import org.json.JSONException;
        import org.json.JSONObject;

        import android.util.Log;
        import android.view.View;
        import android.widget.TextView;
        import android.app.ProgressDialog;
        import android.os.AsyncTask;

            public class REST_code2 extends AsyncTask<String, String, HttpResponse >{


            //---------Credentials----------
                    //Credentials providing access to a specific Salesforce organization.
                    private static final String userName = "gelsonmascarenhas@hotmail.com"; // COPY USERNAME
                    private static final String password = "********567890iuBQsLVoX5Uhbe3vJFfjsKlEj"; // COPY PASSWORD AND TOKEN

                    //---------REST and OAuth-------
                    //Portions of the URI for REST access that are re-used throughout the code
                    private static String OAUTH_ENDPOINT = "/services/oauth2/token";
                    private static String REST_ENDPOINT = "/services/data";

                    //Holds URI returned from OAuth call, which is then used throughout the code.
                    String baseUri;

                    //The oauthHeader set in the oauth2Login method, and then added to
                    //each HTTP object that is used to invoke the REST API.
                    Header oauthHeader;

                    //Basic header information added to each HTTP object that is used
                    //to invoke the REST API.
                    Header prettyPrintHeader = new BasicHeader("X-PrettyPrint", "1");

                    //----------Data specific---------
                    //Retrieved accountId that is used when contact is added.
                    private static String accountId;

                    //Id of inserted contact. Used to update contact.
                    private static String contactId;

                    //----------Utility-------------
                    //Used to get input from console.
                    private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));



                    ProgressDialog dialog;
                    private View host; //view to be initialised on the constructor of this class
                    TextView sTatusComment1;


                    /* Frament variable identifiers */
                    private static Boolean authentication;
                    private static int executionChoice;





                    //........TO BE DELETED ...........//
                    View view_inflater_const;



                    /**
                     * This class holds all the values related to the credentials needed to
                     * make the OAuth2 request for authentication. Normally they would not be set in
                     * this manner.
                     */ 
                    class UserCredentials {
                        String loginInstanceDomain = "na15.salesforce.com"; // COPY YOUR SERVER INSTANCE
                        String apiVersion = "27"; // COPY YOU API VERSION
                        String userName = REST_code2.userName;
                        String password = REST_code2.password;
                        String consumerKey = "3MVG9A2kN3Bn17htllMZ507EvCBOeX8Qfq6sV5vA3HZs6MVowf7CB04msHqmdkXHrYEVsdciASN8Uoz2cj.U."; // COPY YOUR CONSUMER KEY     
                        String consumerSecret = "3783326479037458971"; // COPY YOUR CONSUMER SECRET
                        String grantType = "password";
                    }

                    /**
                     * Constructor drives console interaction and calls appropriate methods.
                     */
                    public REST_code2(View host) {

                        //showMenu();//             FragmentTwo Invoke

                        this.host = host; // host is variable of type View


                    }


                    protected void SetStatusCommand(int executionOption ){


                        executionChoice= executionOption;


                    }

                    protected void setAuthentication(boolean A){
                        authentication = A;
                    }

                    protected int getexecutionChoice(){
                        return executionChoice;
                    }


                    protected boolean getauthenticationStat(){
                        return authentication;//boolean
                    }

                    /**
                     * This method connects the program to the Salesforce organization using OAuth. 
                     * It stores returned values for further access to organization.
                     * @param userCredentials Contains all credentials necessary for login
                     * @return
                     */

                        @Override
                    protected void onPreExecute() {

                            // TODO Auto-generated method stub
                        super.onPreExecute();   


                        }

                        @Override/
                        protected HttpResponse doInBackground(String ... params){

                            OAuth2Response oauth2Response = null;
                            HttpResponse response = null;
                            UserCredentials userCredentials = new UserCredentials();
                            String loginHostUri = "https://" + userCredentials.loginInstanceDomain + OAUTH_ENDPOINT;


                        if(getauthenticationStat()==false)
                                {


                                try {
                                    //Construct the objects for making the request
                                    HttpClient httpClient = new DefaultHttpClient();
                                    HttpPost httpPost = new HttpPost(loginHostUri);
                                    StringBuffer requestBodyText = new StringBuffer("grant_type=password");
                                    requestBodyText.append("&username=");
                                    requestBodyText.append(userCredentials.userName);
                                    requestBodyText.append("&password=");
                                    requestBodyText.append(userCredentials.password);
                                    requestBodyText.append("&client_id=");
                                    requestBodyText.append(userCredentials.consumerKey);
                                    requestBodyText.append("&client_secret=");
                                    requestBodyText.append(userCredentials.consumerSecret);
                                    Log.d("Enviado: ", requestBodyText.toString());
                                    ///////System.out.println("Enviado: "+requestBodyText.toString());
                                    StringEntity requestBody = new StringEntity(requestBodyText.toString());
                                    Log.d("StringEntity requestBody = new StringEntity(requestBodyText.toString()); ", requestBodyText.toString());
                                    requestBody.setContentType("application/x-www-form-urlencoded");
                                    Log.d("requestBody.setContentType( ", "application/x-www-form-urlencoded");
                                    httpPost.setEntity(requestBody);
                                    Log.d("httpPost.setEntity(requestBody); ", "<-------");
                                    httpPost.addHeader(prettyPrintHeader);
                                    Log.d("httpPost.addHeader(prettyPrintHeader); ", "<-------");

                                                                                            response = httpClient.execute(httpPost);


                                                if (  response.getStatusLine().getStatusCode() == 200 ) {
                                                Log.d("if (  response.getStatusLine().getStatusCode() == 200 ) {", "<--------");
                                                String response_string = EntityUtils.toString(response.getEntity());
                                                Log.d("String response_string =", "EntityUtils.toString(response.getEntity());");

                                                    try {
                                                        Log.d("entered try{", "<--------");
                                                        JSONObject json = new JSONObject(response_string);
                                                        oauth2Response = new OAuth2Response(json);
                                                        Log.d("JSON returned by response +/n: ",  json.toString(1));
                                                        publishProgress("JSON returned by response +/n: ",  json.toString(1));

                                                        //System.out.println("JSON returned by response: +\n" + json.toString(1));
                                                        } catch (JSONException je) {
                                                            je.printStackTrace();
                                                        }  
                                            baseUri = oauth2Response.instance_url + REST_ENDPOINT + "/v" + userCredentials.apiVersion +".0";
                                            oauthHeader = new BasicHeader("Authorization", "OAuth " + oauth2Response.access_token);
                                            Log.d("\nSuccessfully logged in to instance: " , baseUri );
                                                                                } 
                                            else {
                                                Log.d("An error has occured. Http status: " , "there is suppost to be an int variable, go and check");


                                            //System.out.println("An error has occured. Http status: " + response.getStatusLine().getStatusCode()); //@+id/textView4
                                                //System.out.println(getBody(response.getEntity().getContent())); //@+id/textView4
                                                System.exit(-1);
                                                }
                                }  /*end of try */
                        catch (UnsupportedEncodingException uee) {
                            uee.printStackTrace();
                        } catch (IOException ioe) {
                            ioe.printStackTrace();
                        } catch (NullPointerException npe) {
                            npe.printStackTrace();
                        }
                                }

                            return response;    }

    CODE THAT INVOKES THE ASYNC I had to remove all the imports in this class to save charater cout space:

        package com.example.nettec; 


    public class FragmentTwo extends Fragment implements View.OnClickListener{ 

        View view_inflater_const;
        ViewGroup container_const;
        Bundle savedInstanceState_const;


        private static String accountId="empty";


        private static String contactId;


         ImageView ivIcon; 
         TextView tvItemName; 
         Button Button_Ok;

         View GlobalView;

         EditText sTatus;
         String String_sTatus;
         TextView sTatusComment1;


         public static final String IMAGE_RESOURCE_ID = "iconResourceID"; 
         public static final String ITEM_NAME = "itemName"; 

         public static final String BUTTON_OK = "button_OK";


         public View RetrieveView(){
             return GlobalView;
         }

         public void storeView(View v){
             GlobalView= v;
         }


         public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                     Bundle savedInstanceState) { 
             Log.d("Testing", "onCreateView(LayoutInflater inflater, viewGroup container, Bundle savedInstanceState");

               View view = inflater.inflate(R.layout.fragment_layout_two, container, 
                       false); 

               storeView(view);

               Button testButton = (Button) view.findViewById(R.id.button1);


               Log.d("still inside the onCreateView()", " Button testButton has initialised successfully");


            sTatusComment1= (TextView) view.findViewById(R.id.textView4);


            Log.v("TextView sTatusComment1= (TextView)v.findViewById(R.id.textView4); ",(String)sTatusComment1.getText().toString());


            sTatusComment1.setText("Please enter option :");
            Log.d("sTatusComment1.setText(Please enter option "," success)");

              testButton.setOnClickListener(this);




               ivIcon=(ImageView)view.findViewById(R.id.frag2_icon); 
               tvItemName = (TextView) view.findViewById(R.id.frag2_text);


               tvItemName.setText(getArguments().getString(ITEM_NAME)); 
               ivIcon.setImageDrawable(view.getResources().getDrawable( 
                       getArguments().getInt(IMAGE_RESOURCE_ID))); 




               return view; 
         }


         public void  onActivityCreated(Bundle savedInstanceState){

             super.onActivityCreated(savedInstanceState);

             sTatusComment1= (TextView) getActivity().findViewById(R.id.textView1);

         }

         public void changeText(String data){
             sTatusComment1.setText(data);
         }





         @Override
            public void onClick(View v) {


             Log.d("just entered"," onClick(View v)");

            v=RetrieveView();

             REST_code REST_obj = new REST_code(v);
             REST_code2 REST_obj2 = new REST_code2(v);


             sTatus= (EditText) v.findViewById(R.id.editText1);
             Log.d("REST_code REST_obj: "," initialised successfully!)");

                boolean invalidValue = true;
                Log.d("boolean invalidValue=true "," initialised successfully!)");
                int executionOption=99;


                if (invalidValue==true) {
                    Log.d("if (invalidValue==true) { "," successfully!)");
                    try {
                        Log.d("try clause ","  successfully!)");
                        String quickVar = sTatus.getText().toString();
                        Log.v("sTatus = ",quickVar);///THERE IS SOMETHING WRONG WITH THIS

                     sTatus = (EditText)v.findViewById(R.id.editText1);//pass the value of editText1 to var sTatus String




                     executionOption = Integer.parseInt(sTatus.getText().toString()); //convert the var sTatus string to int and assign to executionOption var
                     Log.v("executionOption ",String.valueOf(executionOption));
                     String quickcheck= (String)sTatus.getText().toString();
                     Log.v("executionOption = ",quickcheck);
                     if ((executionOption < 1 || executionOption > 4) && executionOption!=99) {
                         Log.d("inside if ((executionOption <1 || ","executionOption > 4) && executionOption!=99");
                            Log.d("Please enter ", " 1, 2, 3, 4, or 99.\n"); //@+id/textView2
                            sTatusComment1.setText("Enter the number of the sample to run: ");//variable that will hold answer      @+id/editText1  --FragmentTwo invoke
                            refresh_frag();     //FragmentTwo Invoke
                        } else {
                            Log.d(" OPTION 1 BYPASSED!! " , "  successfully!)");
                            invalidValue = false;
                        }
                    } 
                    catch (Exception e) {
                        Log.d("catch (Exception e) {"," initialised successfully!)");

                        sTatusComment1.setText("Enter the number of the sample to run: ");              // @+id/editText1

                    }           
                }
                if (executionOption == 99) {
                     Log.d("if (executionOption ==99 ",") { successful");
                    sTatusComment1.setText("No action taken");//@+id/textView4
                } else {
                    //NO CODE YET

                    if (executionOption >= 2) {
                    //NO CODE YET   

                    }



                     if (executionOption >= 3) {

                        Log.v("inside executionOption ", ">=3 ");

                        if (accountId != null) {


                            //new CopyOfREST_code(executionOption);
                            REST_obj2.execute();
                            //REST_obj.execute();


                        } else {

                        }
                                                }
                     if (executionOption == 4) {
                        if (contactId != null) {
                            new CopyOfREST_code(executionOption);
                            //REST_obj.restPatchExample(contactId);
                        }  else {
                            sTatusComment1.setText("contact not found");
                        }
                    }   
                }   



           }

    }
  • 1
    Are you calling the `doInBackground` method manually? – zapl Oct 29 '14 at 16:26
  • possible duplicate of [FATAL EXCEPTION: main & AndroidRuntime android.os.NetworkOnMainThreadException](http://stackoverflow.com/questions/26610943/fatal-exception-main-androidruntime-android-os-networkonmainthreadexception) – Selvin Oct 29 '14 at 16:39
  • How are you calling that AsyncTask? strictmode error usually means android is trying to execute a network requets in its main thread. –  Oct 29 '14 at 16:39
  • I am calling the AsyncTask from a Fragment class under "onClick(View v)" method to another class called "public class REST_code2 extends AsyncTask{" – gelson mascarenhas Oct 29 '14 at 17:05
  • Edit both the **full** stack trance **and the code which creates/invokes your async task** into the question. – Chris Stratton Oct 29 '14 at 17:11
  • possible duplicate of [android.os.NetworkOnMainThreadException](http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – Frank van Puffelen Oct 29 '14 at 18:10
  • there is something strange, as REST_Code2 class `extends AsyncTask` but when you call `execute()` you are not passing anything, so? there is something wrong, right? – Yazan Oct 29 '14 at 18:24
  • @FrankvanPuffelen - please take time to read questions before proposing a duplicate based on title alone. This question is **not a duplicate** of that one - in fact, it is *already attempting to use* the method proposed as a solution there. The issue here is that in some subtle way it is not being used correctly. – Chris Stratton Oct 29 '14 at 18:57
  • @gelsonmascarenhas - still waiting on the full stack trace. In particular we need to see the lines which mention code you wrote, not platform code. Also, where is the rest of the AsyncTask class? – Chris Stratton Oct 29 '14 at 18:58
  • @ChrisStratton Point taken, vote retracted. It was based on (incorrectly scanning) the stack trace btw. ;-) – Frank van Puffelen Oct 29 '14 at 19:04
  • @Chris Stratton: I was unable to paste the stack trance and the rest of the code due to fact that it will excceed the word count limitations – gelson mascarenhas Oct 30 '14 at 11:33
  • 1
    The `logcat` you just added looks like it doesn't contain anything related to your app. The interesting stacktrace part we're looking for is how the original one with `android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictlMode.java:1117)` continues. It should show names of your own java files so we can see how the error relates to the code you posted. – zapl Oct 30 '14 at 12:06
  • @Chris Stratton: I have now pasted the full original LogCat – gelson mascarenhas Oct 30 '14 at 15:13
  • Your logcat shows that **in the code you are actually using** (rather than the version you previously posted* you do not use an AsyncTask. – Chris Stratton Oct 30 '14 at 15:29
  • @Chris Stratton your right i was accidently calling an alternative class object similar to the Async class object by not checking my if statement thoughly... (guess I am more rusty then what i had imagined) – gelson mascarenhas Oct 30 '14 at 23:12

1 Answers1

0

Your logcat shows that in the code you are actually using, CopyOfREST_code.java (which you never seem to have posted) you are performing a network operation (specifically a call to oauth2Login()) within the initializer.

Although the doInBackground() method of an AsyncTask runs off the UI thread, the initialization of the class runs on the UI thread, meaning you cannot do network operations there.

Move all of your network operation within the doOnBackground().

Chris Stratton
  • 39,853
  • 6
  • 84
  • 117