2012-03-30 61 views
0

大家好我试图实现与urbanairship推送通知实现推送通知的Android

我也跟着从http://blog.jamesbaca.net/?p=235

步骤,但得到这个错误:

03-30 16:10:34.022: E/AndroidRuntime(13171): FATAL EXCEPTION: main 
03-30 16:10:34.022: E/AndroidRuntime(13171): java.lang.ExceptionInInitializerError 
03-30 16:10:34.022: E/AndroidRuntime(13171): at com.nano.push.PushPreferencesActivity.<init>(PushPreferencesActivity.java:58) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at java.lang.Class.newInstanceImpl(Native Method) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at java.lang.Class.newInstance(Class.java:1429) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.os.Looper.loop(Looper.java:123) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at java.lang.reflect.Method.invokeNative(Native Method) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at java.lang.reflect.Method.invoke(Method.java:521) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at dalvik.system.NativeStart.main(Native Method) 
03-30 16:10:34.022: E/AndroidRuntime(13171): Caused by: java.lang.NullPointerException 
03-30 16:10:34.022: E/AndroidRuntime(13171): at com.urbanairship.push.PushManager.<init>(Unknown Source) 
03-30 16:10:34.022: E/AndroidRuntime(13171): at com.urbanairship.push.PushManager.<clinit>(Unknown Source) 
03-30 16:10:34.022: E/AndroidRuntime(13171): ... 16 more 

回答

0

Android云端至设备通讯(C2DM)是一项服务,可帮助开发人员将数据从服务器发送到Android设备上的应用程序。该服务提供了一种简单,轻量的机制,服务器可以使用该机制来告诉移动应用程序直接联系服务器,以获取更新的应用程序或用户数据。 C2DM服务处理消息排队和交付到目标设备上运行的目标应用程序的所有方面。

那么您如何从您的web应用程序中在您的Android应用程序中设置C2DM推送通知?以下是Android应用程序和Web服务器的步骤。 注册C2DM

第一步是注册http://code.google.com/android/c2dm/signup.html。填写相关信息,最重要的是您的应用程序和角色帐户电子邮件的包名称。这是您将用于设置和运行C2DM通知的电子邮件ID。它必须是一个有效的Gmail帐户。请确保您不要在任何设备上使用此电子邮件ID。完成注册后,您必须等待Google收到一封确认电子邮件,表示您的注册已被接受。 需要在Android前端完成的事情 注册后,您必须启用Android应用程序C2DM。您的设备上的应用程序需要注册Google的C2DM服务器以接收消息。这需要相当多的管道代码。 Google的C2DM示例项目ChromeToPhone中的类可以用作基础,并在需要时扩展。

以下链接,我已经使用将有助于你。

http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

这是一个很好的链接,推了如何使用推送通知。

http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

+0

是不是废弃了现在编辑? – ishan 2013-02-23 07:58:12

0

可能是你的项目需要依赖库,你可以尝试:

  1. 右键点击你的项目,选择项目属性
  2. 进入“Java构建路径” - >“命令和出口“
  3. 选择所有项目编制需要依赖的项目