title: Android google cloud messaging sample not working
body: <p>Im following the tutorial here <a href="http://developer.android.com/google/gcm/gs.html" rel="nofollow">http://developer.android.com/google/gcm/gs.html</a> in order to setup GCM.
  Im currently in the process of trying to register the device.
  However, for some reason, the application always seems to crash at 
  gcm = GoogleCloudMessaging.getInstance(this); </p>
  
  <p>The stacktrace seems to point at the following: 
  06-18 13:42:20.909: I/dalvikvm(11613): Could not find method com.google.android.gms.gcm.GoogleCloudMessaging.getInstance, referenced from method pushNotification.PushNotification$1.run</p>
  
  <p>Heres a sample of what I have so far</p>
  
  <pre><code>public PushNotification(Context c, Activity activity)
  {
      context = c;
      this.activity = activity;
      regid = getRegistrationId(context);
  
      if (regid.length() == 0) {
          Log.d("IN PUSHNOTIFICATION ","NOT REGISTERED. REGISTERING NOW.....");
          registerBackground();
      }
      Log.d("IN PUSHNOTIFICATION ","REGISTRATION COMPLETE.....");
      Log.d("IN PUSHNOTIFICATION ","REGISTRATION ID IS: " + regid);
      gcm = GoogleCloudMessaging.getInstance(activity); //never reaches this code
  
  }
  
  private void registerBackground() {
  
      Thread thread = new Thread(new Runnable()
      {
          public void run()
          {
              String msg = "";
              try {
                  if (gcm == null) {
                      Log.d("IN PUSHNOTIFICATION", "IN BACKGROUND. gcm == NULL");
                      gcm = GoogleCloudMessaging.getInstance(context);
                      Log.d("IN PUSHNOTIFICATION", "IN BACKGROUND. AFTER gcm.GETINSTANCE");
                  }
                  Log.d("IN PUSHNOTIFICATION", "IN BACKGROUND. BEFORE gcm.register");
                  regid = gcm.register(SENDER_ID);
                  msg = "Device registered, registration id=" + regid;
                  Log.d("IN PUSHNOTIFICATION", "IN BACKGROUND. regid == " + regid);
                  // You should send the registration ID to your server over HTTP,
                  // so it can use GCM/HTTP or CCS to send messages to your app.
  
                  // For this demo: we don't need to send it because the device
                  // will send upstream messages to a server that echo back the message
                  // using the 'from' address in the message.
  
                  // Save the regid - no need to register again.
                  setRegistrationId(context, regid);
              } catch (IOException ex) {
                  Log.d("IN PUSHNOTIFICATION", "IN BACKGROUND. EXCEPTION ERROR ERROR: ex = " + ex.getMessage());
                  msg = "Error :" + ex.getMessage();
              }
          }
      }
      );
      thread.start();
  }
  </code></pre>
  
  <p>Here is the full stacktrace</p>
  
  <blockquote>
    <p>06-18 13:42:20.909: D/IN PUSHNOTIFICATION(11613): NOT REGISTERED.
    REGISTERING NOW..... 06-18 13:42:20.909: I/dalvikvm(11613): Could not
    find method
    com.google.android.gms.gcm.GoogleCloudMessaging.getInstance,
    referenced from method pushNotification.PushNotification$1.run 06-18
    13:42:20.909: W/dalvikvm(11613): VFY: unable to resolve static method
    5967: Lcom/google/android/gms/gcm/GoogleCloudMessaging;.getInstance
    (Landroid/content/Context;)Lcom/google/android/gms/gcm/GoogleCloudMessaging;
    06-18 13:42:20.909: D/dalvikvm(11613): VFY: replacing opcode 0x71 at
    0x0015 06-18 13:42:20.909: I/dalvikvm(11613): Could not find method
    com.google.android.gms.gcm.GoogleCloudMessaging.register, referenced
    from method pushNotification.PushNotification$1.run 06-18
    13:42:20.909: W/dalvikvm(11613): VFY: unable to resolve virtual method
    5969: Lcom/google/android/gms/gcm/GoogleCloudMessaging;.register
    ([Ljava/lang/String;)Ljava/lang/String; 06-18 13:42:20.909:
    D/dalvikvm(11613): VFY: replacing opcode 0x6e at 0x0039 06-18
    13:42:20.909: D/IN PUSHNOTIFICATION(11613): REGISTRATION COMPLETE.....
    06-18 13:42:20.909: D/IN PUSHNOTIFICATION(11613): REGISTRATION ID IS: 
    06-18 13:42:20.909: D/AndroidRuntime(11613): Shutting down VM 06-18
    13:42:20.909: W/dalvikvm(11613): threadid=1: thread exiting with
    uncaught exception (group=0x2b542210) 06-18 13:42:20.909: D/IN
    PUSHNOTIFICATION(11613): IN BACKGROUND. gcm == NULL 06-18
    13:42:20.909: W/dalvikvm(11613): threadid=20: thread exiting with
    uncaught exception (group=0x2b542210) 06-18 13:42:20.909:
    I/Process(11613): Sending signal. PID: 11613 SIG: 9 06-18
    13:42:20.919: I/ActivityManager(278): Process com.gotoohlala (pid
    11613) has died.</p>
  </blockquote>