title: Why am I receiving a "thread exiting with uncaught exception”?
body: <p>I'm using Parse.com for push notifications. When I receive a push notification, this class executes:</p>
  
  <pre><code>public class MyCustomReceiver extends BroadcastReceiver {
  
      protected ObjetoMensaje DatosObjecto;
      protected SerializacionDeDatos Sdd;
      protected String alert, fecha, name, tipo;
      private static final String TAG = "MyCustomReceiver";
  
    @Override
    public void onReceive(Context context, Intent intent) {
      try {
  
          DatosObjecto = new ObjetoMensaje();
          Sdd = new SerializacionDeDatos();
  
        String action = intent.getAction();
        String channel = intent.getExtras().getString("com.parse.Channel");
        JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
  
        Log.d(TAG, "got action " + action + " on channel " + channel + " with:");
        Iterator&lt;?&gt; itr = json.keys();
        Log.i("","");
  
        while (itr.hasNext()) {
          String key = (String) itr.next();
          Log.d(TAG, "..." + key + " =&gt; " + json.getString(key));
          Log.d(TAG,"");
         }
  
        alert = json.getString("alert").toString();
        name = json.getString("name").toString();
        tipo = json.getString("tipo").toString();
  
        DatosObjecto.setAlert(alert);
        DatosObjecto.setName(name);
        DatosObjecto.setTipo(tipo);
  
        Sdd.Serializa(DatosObjecto); //this line, I use for call the class "SerializacionDeDatos"
  
      } catch (JSONException e) {
        Log.d(TAG, "JSONException: " + e.getMessage());
      }
    }
  }
  </code></pre>
  
  <p>These lines:</p>
  
  <pre><code> alert = json.getString("alert").toString();
    name = json.getString("name").toString();
    tipo = json.getString("tipo").toString();
  
    DatosObjecto.setAlert(alert);
    DatosObjecto.setName(name);
    DatosObjecto.setTipo(tipo);
  </code></pre>
  
  <p>When I receive the push, I'm extracting the values of "alert", "name" and "tipo".  I put them in an ObjetoMensaje Object. Code:</p>
  
  <pre><code>public class ObjetoMensaje extends Activity implements Serializable{ 
  
  private static final long serialVersionUID = 5680898935329497057L; 
  private String  alert, name, tipo; 
  protected String filename = "datos.dat";
  
  public ObjetoMensaje(){}; 
  
  public ObjetoMensaje(String alert, String name, String tipo){ 
      super(); 
      this.alert = alert;
      this.name = name;
      this.tipo = tipo; 
      }
  
  public String getAlert(){
      return alert;
  }
  
  public void setAlert(String alert){
      this.alert = alert;
      Log.i("Set Alert", "Excitoso");
  }
  
  public String getName(){
      return name;
  }
  
  public void setName(String name){
      this.name = name;
      Log.i("Set Name", "Excitoso");
  }
  
  public String getTipo(){
      return tipo;
  }
  
  public void setTipo(String tipo){
      this.tipo = tipo;
      Log.i("Set tipo", "Excitoso");
  }
  }
  </code></pre>
  
  <p>I want to serialize the values "alert", "name", and "tipo", so I've created a class for serialization:</p>
  
  <pre><code>public class SerializacionDeDatos extends Activity{
  
  protected String filename = "datos.dat";
  protected void Serializa(ObjetoMensaje DatosObjecto){
              FileOutputStream fos;
              try {
                  fos = openFileOutput(filename, Context.MODE_PRIVATE);
                  ObjectOutputStream oos = new ObjectOutputStream(fos);
                  oos.writeObject(DatosObjecto);
                  oos.close();
              } catch (FileNotFoundException e) {
                  e.printStackTrace();
              } 
              catch (IOException e) {
                  e.printStackTrace();
              }
      }
  }
  </code></pre>
  
  <p>When I call the class, I get this error:</p>
  
  <pre><code>08-08 13:15:32.976: W/dalvikvm(8360): threadid=1: thread exiting with uncaught exception (group=0x4001c578)
  08-08 13:15:33.070: E/AndroidRuntime(8360): FATAL EXCEPTION: main
  08-08 13:15:33.070: E/AndroidRuntime(8360): java.lang.RuntimeException: Unable to start receiver mx.nivel9.apps.MyCustomReceiver: java.lang.NullPointerException
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1809)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.app.ActivityThread.access$2400(ActivityThread.java:117)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.os.Handler.dispatchMessage(Handler.java:99)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.os.Looper.loop(Looper.java:130)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.app.ActivityThread.main(ActivityThread.java:3687)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at java.lang.reflect.Method.invokeNative(Native Method)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at java.lang.reflect.Method.invoke(Method.java:507)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at dalvik.system.NativeStart.main(Native Method)
  08-08 13:15:33.070: E/AndroidRuntime(8360): Caused by: java.lang.NullPointerException
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at mx.nivel9.apps.SerializacionDeDatos.Serializa(SerializacionDeDatos.java:23)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at mx.nivel9.apps.MyCustomReceiver.onReceive(MyCustomReceiver.java:50)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1798)
  08-08 13:15:33.070: E/AndroidRuntime(8360):     ... 10 more
  </code></pre>
  
  <p>What am I doing wrong?</p>