cordova - android 应用程序在收到一个推送通知时崩溃

cordova - android app crashes when receive one push notification

我用 Cordova 3.0 和 Visual Studio 2013 制作了一个 android 应用程序;在此应用程序中,我将此 Push Notification 插件与 Google 云消息服务一起使用。

注册应用程序工作正常,因为我从 GCM 获得了 RegID,并且我的 Web 服务器中的注册也工作正常,但是,当我向设备发送任何通知时遇到问题:应用程序在收到推,不显示什么。

我没有日志,因为应用程序在 Cordova 上,Visual Studio 无法调试此应用程序类型。

请帮我解决这个问题。

提前谢谢你。来自墨西哥的问候。

嗯,确实,经过大量研究,我终于可以在 VS 中调试我的应用程序(我在启动 adb.exe 时遇到了问题)。在日志中,我可以看到我的代码在创建接收器时有一个错误,这是错误:Unable to instantiate receiver com.myapp.GcmBroadcastReceiver

我查看了一下,发现我的 AndroidManifest.xml 中可能存在错误;然后我完全按照 Cordova 文档中的说明进行操作,然后......这有效!

这是 Android 清单权限及更多 (Here is the Docs):

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE" />

<activity android:name="com.plugin.gcm.PushHandlerActivity"/>
<receiver android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" 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="$PACKAGE_NAME" />
    </intent-filter>
</receiver>
<service android:name="com.plugin.gcm.GCMIntentService" />

谢谢大家