大家好我正试图用urbanairship实现推送通知
我按照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 :(得分:0)
Android Cloud to Device Messaging(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
答案 1 :(得分:0)
可能是您的项目需要依赖库,您可以尝试一下: