The app is looking for com.google.android.gcm.GCMBroadcastReceiver , but your class is in another pushNotification.GCMBroadcastReceiver package.
And the package of your application is different from it - com.myAppName .
While your GCMBroadcastReceiver should not be in the same package as your application package, the category in the intent filter should be the application package.
You should change this:
<intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="pushNotification" /> </intent-filter>
For this:
<intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.myAppName" /> </intent-filter>
EDIT:
Depending on your manifest, you have additional errors:
You indicate the broadcast receiver twice. If you want to use your own receiver, you must remove this part:
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="com.gotoohlala" /> </intent-filter> </receiver>
Another problem:
Remove this line:
<uses-permission android:name="com.gotoohlala.gcm.permission.C2D_MESSAGE" />
Since you already have these lines (which are correct):
<permission android:name="com.gotoohlala.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.gotoohlala.permission.C2D_MESSAGE" />
source share