Android App收到推送通知后崩溃

时间:2014-07-09 12:50:05

标签: push-notification appcelerator google-cloud-messaging appcelerator-mobile

我的Android应用程序在收到推送通知时崩溃。我正在使用的代码如下所示

var CloudPush = require('ti.cloudpush');

var deviceToken =   '';
//fetch device token
CloudPush.retrieveDeviceToken({
    success : function deviceTokenSuccess(e) {
        alert('Device Token: ' + deviceToken);
        Ti.API.info('Device Token: ' + e.deviceToken);
    },
    error : function deviceTokenError(e) {
        alert('Failed to register for push! ' + e.error);
    }
});

CloudPush.debug = true;
CloudPush.enabled = true;
CloudPush.showTrayNotificationsWhenFocused = true;
CloudPush.focusAppOnPush = false;

CloudPush.addEventListener('callback', function(evt) {
    alert(evt.payload);
});

我无法弄清楚我做错了什么或找到有关此问题的任何信息。 任何信息都会非常有用。提前谢谢。

PS - 我正在使用Titanium SDK 3.1.0。

下面列出的日志 -

E/TiApplication(9474): (main) [27233,59667] Sending event: exception on thread: main msg:java.lang.NoSuchMethodError: org.appcelerator.titanium.TiApplication.isCurrentActivityInForeground; Titanium 3.1.0,2013/04/15 18:46,57634ef

E/TiApplication(9474): java.lang.NoSuchMethodError: org.appcelerator.titanium.TiApplication.isCurrentActivityInForeground

E/TiApplication(9474): at ti.cloudpush.CloudpushModuleGeneric.receivePayload(CloudpushModuleGeneric.java:81)

E/TiApplication(9474): at ti.cloudpush.GCMReceiver.onReceive(GCMReceiver.java:26) E/TiApplication(9474): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2280)

E/TiApplication(9474): at android.app.ActivityThread.access$1600(ActivityThread.java:143) 
E/TiApplication(9474): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)

E/TiApplication(9474): at android.os.Handler.dispatchMessage(Handler.java:99) 

E/TiApplication(9474): at android.os.Looper.loop(Looper.java:137) 

E/TiApplication(9474): at android.app.ActivityThread.main(ActivityThread.java:4950) 

E/TiApplication(9474): at java.lang.reflect.Method.invokeNative(Native Method) 

E/TiApplication(9474): at java.lang.reflect.Method.invoke(Method.java:511) 

E/TiApplication(9474): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)

E/TiApplication(9474): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
E/TiApplication(9474): at dalvik.system.NativeStart.main(Native Method)

2 个答案:

答案 0 :(得分:0)

你得到的错误是:

  

E / TiApplication(9474):java.lang.NoSuchMethodError:   org.appcelerator.titanium.TiApplication.isCurrentActivityInForeground

谷歌搜索这个方法,我发现它here

这意味着您可能正在使用包含org.appcelerator.titanium.TiApplication类错误版本的jar。

答案 1 :(得分:0)

我在实施GCM推送时遇到了一个问题。这是由于我使用的CloudPush模块的问题。我使用的是CloudPush模块3.x.我将模块更改回2.3.3并且工作正常。如果您的应用程序安装在Android 2.3.x设备中,则会出现同样的问题。因此,请尝试将Android CloudPush模块更改为2.3.3,并且不要忘记在TiApp.xml上指定版本