我的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)
答案 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上指定版本