title: Android: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
body: <p>My code throw NullPointerException.</p>
  
  <p>This my java code :</p>
  
  <pre><code>public class DbselectActivity extends Activity
  {
      public void onCreate(Bundle savedInstanceState)
      {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          Button button = (Button) findViewById(R.id.button1);
          button.setOnClickListener(new View.OnClickListener()
          {
              public void onClick(View view)
              {
                  String result = null;
                  InputStream is = null;
  
                  try{
                      HttpClient httpclient = new DefaultHttpClient();
                      HttpPost httppost = new HttpPost("http://192.168.1.0:81/selectall.php");
  
                      HttpResponse response = httpclient.execute(httppost);
  
                      HttpEntity entity = response.getEntity();
                      is = entity.getContent();
  
                      Log.e("log_tag", "connection success ");
                      //   Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show();
                  }
                  catch(Exception e)
                  {
                      Log.e("log_tag", "Error in http connection "+e.toString());
                      Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_SHORT).show();
                  }
                  //convert response to string
                  try
                  {
                      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                      StringBuilder sb = new StringBuilder();
                      String line = null;
                      while ((line = reader.readLine()) != null)
                      {
                          sb.append(line + "\n");
                          //  Toast.makeText(getApplicationContext(), "Input Reading pass", Toast.LENGTH_SHORT).show();
                      }
                      is.close();
                      result=sb.toString();
                  }
                  catch(Exception e)
                  {
                      Log.e("log_tag", "Error converting result "+e.toString());
                      Toast.makeText(getApplicationContext(), " Input reading fail", Toast.LENGTH_SHORT).show();
                  }
                  //parse json data
                  try
                  {
                      JSONArray jArray = new JSONArray(result);
                      String re=jArray.getString(jArray.length()-1);
                      TableLayout tv=(TableLayout) findViewById(R.id.table);
                      tv.removeAllViewsInLayout();
  
                      int flag=1;
  
                      for(int i=-1;i&lt;jArray.length()-1;i++)
                      {
                          TableRow tr=new TableRow(DbselectActivity.this);
  
                          tr.setLayoutParams(new LayoutParams(
                                  LayoutParams.FILL_PARENT,
                                  LayoutParams.WRAP_CONTENT));
  
                          if(flag==1)
                          {
                              TextView b6=new TextView(DbselectActivity.this);
                              b6.setText("ID");
                              b6.setTextColor(Color.BLUE);
                              b6.setTextSize(15);
                              tr.addView(b6);
  
                              TextView b19=new TextView(DbselectActivity.this);
                              b19.setPadding(10, 0, 0, 0);
                              b19.setTextSize(15);
                              b19.setText("Name");
                              b19.setTextColor(Color.BLUE);
                              tr.addView(b19);
  
                              TextView b29=new TextView(DbselectActivity.this);
                              b29.setPadding(10, 0, 0, 0);
                              b29.setText("no");
                              b29.setTextColor(Color.BLUE);
                              b29.setTextSize(15);
                              tr.addView(b29);
  
                              tv.addView(tr);
  
                              final View vline = new View(DbselectActivity.this);
                              vline.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 2));
                              vline.setBackgroundColor(Color.BLUE);
  
                              tv.addView(vline);
                              flag=0;
  
                          }
                          else
                          {
  
                              JSONObject json_data = jArray.getJSONObject(i);
  
                              Log.i("log_tag","id: "+json_data.getInt("f1")+
                                      ", Username: "+json_data.getString("f2")+
                                      ", No: "+json_data.getInt("f3"));
  
                              TextView b=new TextView(DbselectActivity.this);
                              String stime=String.valueOf(json_data.getInt("f1"));
                              b.setText(stime);
                              b.setTextColor(Color.RED);
                              b.setTextSize(15);
                              tr.addView(b);
  
                              TextView b1=new TextView(DbselectActivity.this);
                              b1.setPadding(10, 0, 0, 0);
                              b1.setTextSize(15);
                              String stime1=json_data.getString("f2");
                              b1.setText(stime1);
                              b1.setTextColor(Color.WHITE);
                              tr.addView(b1);
  
                              TextView b2=new TextView(DbselectActivity.this);
                              b2.setPadding(10, 0, 0, 0);
                              String stime2=String.valueOf(json_data.getInt("f3"));
                              b2.setText(stime2);
                              b2.setTextColor(Color.RED);
                              b2.setTextSize(15);
                              tr.addView(b2);
  
                              tv.addView(tr);
  
                              final View vline1 = new View(DbselectActivity.this);
                              vline1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
                              vline1.setBackgroundColor(Color.WHITE);
                              tv.addView(vline1);
                          }
                      }
                  }
                  catch(JSONException e)
                  {
                      Log.e("log_tag", "Error parsing data "+e.toString());
                      Toast.makeText(getApplicationContext(), "JsonArray fail", Toast.LENGTH_SHORT).show();
                  }
              }
          });
      }
  }
  </code></pre>
  
  <p>My php code is :</p>
  
  <pre><code>    &lt;?php
  
           $con = mysql_connect("localhost","root","");
           if (!$con)
             {
               die('Could not connect: ' . mysql_error());
             }
  
             mysql_select_db("ex1", $con);
  
             $i=mysql_query("select * from t1",$con);
  
             $num_rows = mysql_num_rows($i);
  
             $check='';
            while($row = mysql_fetch_array($i))
              {
                    $r[]=$row;
                    $check=$row['f1'];
  
               }
  
           if($check==NULL)
             {            
                        $r[$num_rows]="Record is not available";
                        print(json_encode($r));   
               }
              else
               {
                  $r[$num_rows]="success";
                  print(json_encode($r)); 
                } 
   mysql_close($con);               
      ?&gt;
  </code></pre>
  
  <p>Logcat is:</p>
  
  <blockquote>
    <p>FATAL EXCEPTION: main
                                                                               Process: com.example.dell.dbselect, PID: 16779
                                                                               java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
                                                                                   at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
                                                                                   at org.json.JSONTokener.nextValue(JSONTokener.java:94)
                                                                                   at org.json.JSONArray.(JSONArray.java:92)
                                                                                   at org.json.JSONArray.(JSONArray.java:108)
                                                                                   at
    com.example.dell.dbselect.DbselectActivity$1.onClick(DbselectActivity.java:81)
                                                                                   at android.view.View.performClick(View.java:5198)
                                                                                   at android.view.View$PerformClick.run(View.java:21147)
                                                                                   at android.os.Handler.handleCallback(Handler.java:739)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                   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) 08</p>
  </blockquote>
  
  <p>I have tried a lot but the same error occurs. Guide me.</p>