title: Android application running on 2.3.5 but crashing in 4.1.2
body: <p>I am creating an app that will access and fetch the data from server thus application works fine and running as expected in GingerBread(2.3.5) but it crashes in JellyBeans(4.1.2). It generates the following error</p>
  
  <pre><code>12-19 14:46:12.027: I/System.out(10088): Domain has been set
  
  12-19 14:46:12.082: I/System.out(10088): Created http client
  
  12-19 14:46:12.093: I/System.out(10088): Created the httppost domain
  
  12-19 14:46:12.097: I/System.out(10088): Response has been initalized by null
  
  12-19 14:46:12.101: I/System.out(10088): Added the parameter  email
  
  12-19 14:46:12.101: I/System.out(10088): Added the parameter  Password
  
  12-19 14:46:12.136: I/System.out(10088): Setting the entity
  
  12-19 14:46:12.218: D/AndroidRuntime(10088): Shutting down VM
  
  12-19 14:46:12.218: W/dalvikvm(10088): threadid=1: thread exiting with uncaught   exception (group=0x40ca4300)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088): FATAL EXCEPTION: main
  
  12-19 14:46:12.257: E/AndroidRuntime(10088): android.os.NetworkOnMainThreadException
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at java.net.InetAddress.getAllByName(InetAddress.java:214)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at com.yousaf.naveed.CommunicationClass.trydata(CommunicationClass.java:96)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at com.yousaf.naveed.signin.senddata(signin.java:86)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at com.yousaf.naveed.signin$1.onClick(signin.java:57)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.view.View.performClick(View.java:4084)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.view.View$PerformClick.run(View.java:16966)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.os.Handler.handleCallback(Handler.java:615)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.os.Handler.dispatchMessage(Handler.java:92)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.os.Looper.loop(Looper.java:137)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at android.app.ActivityThread.main(ActivityThread.java:4745)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at java.lang.reflect.Method.invokeNative(Native Method)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at java.lang.reflect.Method.invoke(Method.java:511)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
  
  12-19 14:46:12.257: E/AndroidRuntime(10088):    at dalvik.system.NativeStart.main(Native Method)
  
  12-19 14:46:12.285: W/ActivityManager(248):   Force finishing activity com.yousaf.naveed/.signin
  
  12-19 14:46:12.820: W/ActivityManager(248): Activity pause timeout for ActivityRecord{41479970 com.yousaf.naveed/.signin}
  </code></pre>
  
  <p>The code for Signin is as </p>
  
  <pre><code>protected void senddata() {
      int status = 0,role=0;
      int active=0;
      // TODO Auto-generated method stub
      @SuppressWarnings("unused")
      String JSONString = null;
      ccobj = new CommunicationClass();
      ccobj.setDomain("http://naveedyousaf.com/fyp/cakephp-master/cakephp-master/Users/signin");
      ccobj.setClient();
      ccobj.startpost(ccobj.Domain);
      ccobj.setResponse();
      ccobj.insertdata("email", email);
      ccobj.insertdata("Password", password);
      ccobj.trydata();
      ccobj.setreader();
      ccobj.setStringBuilder();   
      ccobj.readresponse();
      JSONString = new String(ccobj.builder);
  
          String first_name = null,last_name = null,emails=null,password=null,emer=null; 
          try {
              status = ccobj.finalResult.getInt("status");
              first_name = ccobj.finalResult.getString("First_Name");
              last_name = ccobj.finalResult.getString("Last_Name");
              emails = ccobj.finalResult.getString("Email");
              password = ccobj.finalResult.getString("Password");
              role =   ccobj.finalResult.getInt("Role");
              //active = ccobj.finalResult.getInt("Active");
              ids = ccobj.finalResult.getInt("Id");
              System.out.print("============="+ids);
              emer = ccobj.finalResult.getString("Emergency");
  
          } catch (JSONException e) {
              // TODO Auto-generated catch block
              System.out.println("In the issue itself");
              e.printStackTrace();
          }
          error=(TextView) this.findViewById(R.id.error);
          System.out.println(status);
          if(status==2){
              try{
                  error.setTextColor(Color.RED);
                  error.setText("Unrecognized Email");
                  error.setTextSize(12);
                  fpass.setTextColor(Color.RED);
                  fpass.setTextSize(12);
                  //pd.cancel();
              }
              catch(NullPointerException e){
                  System.out.println("This is the uncaught exception");
              }
  
              //error.text.setTextColor(Color.rgb(200,0,0));
          }
          if(status==1){
              dcobj = new DataClass();
              //ids = Integer.parseInt(id);
              dcobj.setFirstName(first_name);
              dcobj.setLastName(last_name);
              dcobj.setEmail(emails);
              dcobj.setPassword(password);
              dcobj.setRole(role);
              dcobj.setStatus(status);
              dcobj.setActive(active);
              dcobj.setId(ids);
              dcobj.setEmer(emer);
              sendnewdata();
          }
  
  }
  </code></pre>
  
  <p>The code for Communication class  is as below</p>
  
  <pre><code>public void setreader(){
      try {
          reader = new BufferedReader(new InputStreamReader(this.response.getEntity().getContent(), "UTF-8"));
          System.out.println("Setting the contents of the Reader");
      } catch (UnsupportedEncodingException e) {
          // TODO Auto-generated catch block
          System.out.println("In the UnsupportedEncodingException catch of the Reader");
          e.printStackTrace();
      } catch (IllegalStateException e) {
          // TODO Auto-generated catch block
          System.out.println("In the IllegalStateException catch of the Reader");
          e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
          System.out.println("In the IOException catch of the Reader");
          e.printStackTrace();
      }
  
  }
  public void startpost(String str){
      datapost=new HttpPost(str);
      System.out.println("Created the httppost domain");
  }
  public void insertdata(String tag,String value){
      namevaluepairs.add(new BasicNameValuePair(tag,value));
      System.out.println("Added the parameter  "+tag);
  }
  
  public void trydata(){
      try {
          this.datapost.setEntity(new UrlEncodedFormEntity(this.namevaluepairs));
          System.out.println("Setting the entity");
  
          try {
              //HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
              this.response = this.client.execute(this.datapost);
              System.out.println("executing the client");
               if(this.response != null){
                   System.out.println("i am in if of this.response!=null");
               }
               else{
                   System.out.println("i am in else of this.response!=null");
               }
               System.out.println("in response try box");
          } catch (ClientProtocolException e) {
              // TODO Auto-generated catch block
              System.out.println("in ClientProtocolException Catch box");
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              System.out.println("in IOException Catch box");
              e.printStackTrace();
          }
      } catch (UnsupportedEncodingException e) {
          // TODO Auto-generated catch block
          System.out.println("in UnSupported Catch box");
          e.printStackTrace();
      }
  }
  public void readresponse(){     
  
  
  
      try {
          for (String line = null; (line = reader.readLine()) != null;) {
              builder.append(line).append("\n");
  
          }
          System.out.println(this.builder);
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
       tokener = new JSONTokener(builder.toString());
      try {
           finalResult = new JSONObject(tokener);
          System.out.println("I am in try block of json final result reading");
      } catch (JSONException e) {
          // TODO Auto-generated catch block
          System.out.println("I catch block of jsonException");
          e.printStackTrace();
      } 
  }
  </code></pre>
  
  <p>its Manifest file has the following permissions</p>
  
  <pre><code> &lt;uses-permission android:name="android.permission.INTERNET"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;  
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-permission android:name="android.permission.READ_PHONE_STATE"/&gt;
  </code></pre>
  
  <p>Please can anyone explain me why is it crashing what exception is not handled.</p>
  
  <p>I am having the main activity of sign in but this signin class is calling the CommunicationClass which is executing the httpclient protocol with post method signin does not execute the httpclient itself but it is waiting to execute that so then why i do need Async task.</p>