2012-03-30 62 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. 選擇所有項目編制需要依賴的項目