Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 解析时出现推送通知错误_Android_Parse Platform_Push Notification_Google Cloud Messaging_Task - Fatal编程技术网

Android 解析时出现推送通知错误

Android 解析时出现推送通知错误,android,parse-platform,push-notification,google-cloud-messaging,task,Android,Parse Platform,Push Notification,Google Cloud Messaging,Task,处境 我已经在ANDROID中使用Parse实现了推送通知。一切都很好,我可以接收推送/发送等,唯一的问题是,当我安装我的应用程序时,会发生以下情况: 如果这是设备上的首次安装:没有问题 如果不是第一次安装,这意味着设备已经进行了PARSE/GCM注册,它会生成以下错误: 产生的错误 是的,它生成它,但应用程序不会崩溃!这个应用程序仍然可以工作:推送通知也可以,但你可以理解这不是100%可靠的 他想要什么。。?我该怎么办?问题的原因是什么?这是我的密码: Application.java 在我的

处境

我已经在ANDROID中使用Parse实现了推送通知。一切都很好,我可以接收推送/发送等,唯一的问题是,当我安装我的应用程序时,会发生以下情况:

如果这是设备上的首次安装:没有问题 如果不是第一次安装,这意味着设备已经进行了PARSE/GCM注册,它会生成以下错误: 产生的错误

是的,它生成它,但应用程序不会崩溃!这个应用程序仍然可以工作:推送通知也可以,但你可以理解这不是100%可靠的

他想要什么。。?我该怎么办?问题的原因是什么?这是我的密码:

Application.java

在我的mainActivity中,我只是将deviceToken(在我的例子中是installationId)连接到我的userAgent中:这也很好!即使生成了错误,installationID也会插入到userAgent中

MainActivity.java

我的代码中有错误吗


谢谢

请尝试以下操作:

 ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback()
    {
        @Override
        public void done(ParseException e)
        {
            PushService.setDefaultPushCallback(Application.this, MainActivit.class);
        }
    });

我记得,在使用setDefaultPushCallback时,不需要保存安装。尝试删除保存的安装,并查看是否仍然发生


setDefaultPushCallback将自动为您保存安装。我记不起在哪里找到的,但在某个论坛上,有人告诉我这是一种行为。我想在没有第一次完成的情况下进行第二次保存会使安装处于错误状态,导致出现非致命错误msg。

我记得,使用setDefaultPushCallback时不需要保存安装。尝试删除保存的安装,看看它是否仍然发生。@cYrixmorten我已经删除了它,它似乎可以正常工作。但是告诉我,saveInBackground不是让解析工作的基础吗?问题是setDefaultPushCallback会自动为您保存安装。我记不起在哪里找到的,但在某个论坛上,有人告诉我这是一种行为。我猜在没有第一次完成的情况下,第二次保存会使安装处于错误状态,导致非致命错误消息。
E/ParseCommandCache﹕ Failed to run command.
com.parse.ParseException: at least one ID field (installationId,deviceToken) must be specified in this operation
 @Override
public void onCreate() {
    super.onCreate();

    // Initialize the Parse SDK.
    Parse.initialize(this, "x", "x");

    // Specify an Activity to handle all pushes by default.
    PushService.setDefaultPushCallback(this, MainActivity.class);

    ParseInstallation.getCurrentInstallation().saveInBackground();

}
 deviceToken = ParseInstallation.getCurrentInstallation().getInstallationId();
 webSettings.setUserAgentString(userAgent + " ||" + deviceToken);
 ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback()
    {
        @Override
        public void done(ParseException e)
        {
            PushService.setDefaultPushCallback(Application.this, MainActivit.class);
        }
    });