2013-07-16 35 views
0

我是0123ng和ServiceGoogleCloudMessaging的新手。我下面的教程在http://developer.android.com/google/gcm/gs.htmlGoogle雲消息啓動問題

我導入庫後到我的工作區,並引用到我的項目,我得到一個運行時異常「無級高清發現錯誤」。我瀏覽了互聯網,發現可能這個錯誤與我的AndroidManifest.xml有關,它可能是有意義的,因爲我不知道教程中描述的有關清單的一些事情。

例如:

<receiver 
    android:name=".MyBroadcastReceiver" 
    android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <category android:name="com.my.package" /> 
    </intent-filter> 
</receiver> 
<service android:name=".MyIntentService" /> 

的第一件事情是,在指南中,他們聲明一個receiver具有名稱「MyBroadcastReceiver」 BUT後者上它們限定了一個名爲「GcmBroadcastReceiver」,其延伸BroadcastReceiver類。所以我不知道他們是不是兩個不同的東西,或者這是一個錯誤,他們應該被命名爲相同。第二件事Service。本教程中沒有服務。所以,我想我猜想創建服務

的第三件事是,我不明白如何或在哪裏從MainActivity稱爲BroadcastReceiver和/或Service,他們如何連接在一起等等。

編輯:我使用的是谷歌新的雲端通訊API

回答

1

服務不再需要。它與舊的API一起使用。它被廣播接收機調用來處理到達的消息和註冊結果,但是現在到達消息的所有處理都在廣播接收機中完成。

您需要一個廣播接收機類。你怎麼稱呼它並不重要。 GcmBroadcastReceiver是他們爲演示應用程序創建的類。名稱MyBroadcastReceiver表明你應該創建你的課堂。廣播接收機不從主要活動中調用。當GCM消息發送到您的應用時會調用它。

至於你的No class def found error,假設你使用的是Eclipse,你可能錯過了檢查Android項目中的Java Build Path - > Order and Export - > Android Private Libraries標誌。

+0

嗯,我一直在爲此奮鬥了3個小時左右,而且你給了我答案,非常感謝 –

+0

@ChristopherFrancisco不客氣! – Eran