title: nullpointer exception on start of an application due to unknown reasons
body: <pre><code>07-01 17:47:23.517: E/AndroidRuntime(932): FATAL EXCEPTION: main
  07-01 17:47:23.517: E/AndroidRuntime(932): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.ActivityThread.access$1300(ActivityThread.java:123)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.os.Handler.dispatchMessage(Handler.java:99)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.os.Looper.loop(Looper.java:137)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.ActivityThread.main(ActivityThread.java:4424)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at java.lang.reflect.Method.invokeNative(Native Method)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at java.lang.reflect.Method.invoke(Method.java:511)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at dalvik.system.NativeStart.main(Native Method)
  07-01 17:47:23.517: E/AndroidRuntime(932): Caused by: java.lang.NullPointerException
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
  07-01 17:47:23.517: E/AndroidRuntime(932):  at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
  07-01 17:47:23.517: E/AndroidRuntime(932):  ... 11 more
  </code></pre>
  
  <p>I get the above error when I start my app.This error doesn't occur always but only once in a while(once in every 20-30 starts) and never occurs two time in a row</p>
  
  <p>Can anyone tell me what code(xml or java) this error is it generated from and how to solve it?<br>
  Here is my code:</p>
  
  <pre><code>public class ProjectBunkitActivity extends Activity {
      Integer z=0,k,i=0;
      static String s1;
      static String s2;
      static String s3;
      static int cpd=0;
      int day,month,year;
  
      String [] p1,p2,p3,p4,p5,p6;
      String so[]=new String[12];
      String subj1[]=new String[20];
  
      static String subj2[]=null;
      String s,sn;
  
      Button b1,b2,b3;
      Button add,sub;
      Button btn;
      EditText t1,t2,t3;
      Exception x;
      LinearLayout linearlayout;
      DatePicker datePicker;
      Date picdate;
  
      static int pos=0;
  
  
      /** Called when the activity is first created. */
      @Override
  
      public void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
  
          SharedPreferences prefsfile = getSharedPreferences("myfile",0); 
          linearlayout=(LinearLayout)findViewById(R.id.leny);
          t3=(EditText)findViewById(R.id.cls2);
  
          if( prefsfile.getInt("cpd",0)!=0 &amp;&amp; prefsfile.getInt("nos",0)!=0 &amp;&amp; Timetablledisplay.flag==0 ){
  
              Intent i=new Intent(ProjectBunkitActivity.this,Timetablledisplay.class);
              ProjectBunkitActivity.cpd=prefsfile.getInt("cpd", 0);
              ProjectBunkitActivity.pos=prefsfile.getInt("nos", 0);
              startActivity(i);
  
              finish();
  
          }
          else{
  
              Timetablledisplay.flag=1;
  
          }
  
  
          b1=(Button)findViewById(R.id.btn);
  
  
          datePicker = (DatePicker) findViewById(R.id.datePicker1);
  
          t1=(EditText)findViewById(R.id.tdys);
          t2=(EditText)findViewById(R.id.cls1);
  
  
  
          add=(Button)findViewById(R.id.sub1);
          sub=(Button)findViewById(R.id.add);
  
  
          datepicupdate();
  
          b1.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View arg0) {
                  // TODO Auto-generated method stub
  
  
                      s1=t1.getText().toString();
                      s2=t2.getText().toString();
                      s3=t3.getText().toString();
                  if(s1.compareTo("")!=0 &amp;&amp; s2.compareTo("")!=0 &amp;&amp; linearlayout.getChildCount()!=0){
  
                      s1=t1.getText().toString();
                      s2=t2.getText().toString();
                      s3=t3.getText().toString();
                      cpd=Integer.parseInt(s2);
  
  
                      int l=0;
                      pos=linearlayout.getChildCount(); 
                      String subj[]=new String[pos];
                      try{
  
                          for(int j=0;j&lt;pos;j++) 
                          {   
  
                              EditText edt1=(EditText)findViewById(j);
                              sn=edt1.getText().toString();
                              subj[l++]=sn;
  
                          }
  
  
                      }
                      catch(Exception e)
                      {
  
  
                      }  
  
                      subj2=subj;
  
                      Toast toast=Toast.makeText(ProjectBunkitActivity.this,subj2[0],Toast.LENGTH_SHORT);
                      toast.show();
  
                      Intent i=new Intent(ProjectBunkitActivity.this,TimetableEdit.class);
                      i.putExtra("course",s1);
                      i.putExtra("classes", s2);
                      i.putExtra("days", s3);
                      i.putExtra("subject",subj);
                      startActivity(i);
  
                  }else {
  
                      Toast toast=Toast.makeText(ProjectBunkitActivity.this,"Please fill all field before proceeding",Toast.LENGTH_SHORT);
                      toast.show();
  
                  }
  
              }
          });
  
  
  
  
  
  
  
  
          add.setOnClickListener(new OnClickListener() {
              public void onClick(View v) {
  
                  try{
                      pos=linearlayout.getChildCount(); 
                      EditText edt=(EditText) new EditText(getApplicationContext());
                      edt.setId(pos);
                      pos++;
                      s=String.valueOf(pos);
                      edt.setHint("Enter the subject name");
                      linearlayout.addView(edt);
  
  
                  }
                  catch(Exception e)
                  {
  
                  }
              }
          });   
  
  
          sub.setOnClickListener(new OnClickListener() {
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try{
  
                      pos=linearlayout.getChildCount(); 
                      s=String.valueOf(pos);
                      linearlayout.removeViewAt(pos-1);
                      pos--;
  
  
                  }catch(Exception n){
  
  
                  }
              }  
  
          });
  
  
  
  
  
      }
  
  
  
  
  
  
  
      @Override
      public void onBackPressed() {
          // TODO Auto-generated method stub
  
      }
  
  
  
  
  
  
  
      private void datepicupdate() {
          // TODO Auto-generated method stub
          try{
  
              if(year!=0){
  
                  datePicker.updateDate(year, month, day);
  
  
              }
  
          }catch (Exception e) {
              // TODO: handle exception
  
          }
  
      }
  
  
  
  
  
  
  
  
      @Override
      protected void onPause() {
          // TODO Auto-generated method stub
          super.onPause();
          try{
              int jaz=Integer.parseInt(t2.getText().toString());
  
              day = datePicker.getDayOfMonth();
              month = datePicker.getMonth();
              year = datePicker.getYear();
  
  
              SharedPreferences.Editor editor = getSharedPreferences("myfile",0).edit();
              editor.putString("text", t1.getText().toString());
              editor.putInt("cpd", jaz);
              editor.putInt("nos", linearlayout.getChildCount());
              editor.putInt("day",day);
              editor.putInt("month",month);
              editor.putInt("year",year);
  
              if(pos==0)
              {
  
                  pos=linearlayout.getChildCount();
  
              }
  
              editor.putInt("pos",pos);   
  
  
              int l=0;
              try{
  
                  for(int j=0;j&lt;=pos-1;j++) 
                  {   
  
                      EditText edt1=(EditText)findViewById(j);
                      sn=edt1.getText().toString();
                      editor.putString("sub0"+l,sn);
                      l++;
  
                  }
              }
              catch(Exception e)
              {
  
              } 
  
              editor.commit();
          }catch (Exception e) {
              // TODO: handle exception
          }
  
      }
  
  
  
  
      @Override
      protected void onRestart() {
          // TODO Auto-generated method stub
          super.onRestart();
  
      }
  
  
  
  
      @Override
      protected void onResume() {
          // TODO Auto-generated method stub
          super.onResume();
          try{
  
              SharedPreferences prefs = getSharedPreferences("myfile",0); 
              String restoredText = prefs.getString("text", null); 
  
              String[] sw=new String[prefs.getInt("cpd",0)];
  
              cpd = prefs.getInt("cpd", 0);
              int restoredText2= prefs.getInt("nos", 0);
              int pos1=prefs.getInt("pos",2);
              int l=0;
              if (restoredText != null) {
                  t1.setText(restoredText, EditText.BufferType.EDITABLE);
                  t2.setText(""+cpd, EditText.BufferType.EDITABLE);
                  t3.setText(""+restoredText2, EditText.BufferType.EDITABLE);
                  day= prefs.getInt("day", 1);
                  month= prefs.getInt("month", 1);
                  year= prefs.getInt("year",2012);
  
                  datepicupdate();
  
  
  
                  linearlayout.removeAllViews();
                  for(int j=0;j&lt;=pos1-1;j++) 
                  {    
  
                      sw[l]=prefs.getString("sub0"+l,null); 
  
                      EditText edt1=(EditText) new EditText(getApplicationContext());
                      edt1.setId(j);
                      edt1.setHint("Enter the subject name");
                      edt1.setText(sw[l]);
                      linearlayout.addView(edt1);
                      l++;
  
                  } 
  
  
  
              }
  
          }catch (Exception e) {
              // TODO: handle exception
  
          }
      }
  
  
  
  
      @Override
      protected void onStop() {
          // TODO Auto-generated method stub
          super.onStop();
  
  
      }
  
  
  
  
  }
  </code></pre>