解析推送通知

时间:2014-09-06 17:24:14

标签: android parse-platform google-cloud-messaging

我想使用Parse SDK 1.5.1为我的libgdx Android应用程序使用推送通知。这就是我查看文档并将其添加到AndroidManifest.xml中的原因。但我有两个版本(发布和调试),这就是我在main-AndroidManifest.xml文件中添加${applicationId}的原因。

调试版本的工作方式与我想要的一样,但是版本构建logcat显示

 java.lang.RuntimeException: java.lang.NullPointerException
        at com.parse.PushRouter$8$1.run(PushRouter.java:235)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
        at com.parse.ParseInstallation.updateVersionInfo(ParseInstallation.java:297)
        at com.parse.ParseInstallation.updateBeforeSave(ParseInstallation.java:213)
        at com.parse.ParseObject.saveEventually(ParseObject.java:1551)
        at com.parse.ParseObject.saveEventually(ParseObject.java:1521)
        at com.parse.PushRouter.subscribe(PushRouter.java:626)
        at com.parse.PushRouter$1.then(PushRouter.java:72)
        at com.parse.PushRouter$1.then(PushRouter.java:69)
        at com.parse.Task$10.run(Task.java:448)
        at com.parse.Task$ImmediateExecutor.execute(Task.java:673)
        at com.parse.Task.completeImmediately(Task.java:444)
        at com.parse.Task.continueWith(Task.java:318)
        at com.parse.Task.continueWith(Task.java:329)
        at com.parse.Task$8.then(Task.java:381)
        at com.parse.Task$8.then(Task.java:373)
        at com.parse.Task$11.run(Task.java:481)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)

可能是我的失败?

Application类中的代码是:

Parse.initialize(this, ParseEndpoint.getAppId(), ParseEndpoint.getClientKey());
PushService.setDefaultPushCallback(this, AndroidLauncher.class);

如果我删除第二行,一切正常,但没有推送可用,但这是合乎逻辑的。

1 个答案:

答案 0 :(得分:0)

我发现了错误。我的APK没有定义版本名称。我将为Parse打开一个错误报告,因为堆栈跟踪没有任何帮助。也许他们可以做得更好。