2012-10-01 53 views
0

我正在嘗試使用google GCM註冊一個Android應用程序,它似乎在eclipse中導致錯誤。任何幫助?GCMRegistrar jar在eclipse中導致錯誤,找不到源代碼。暫停調試

只要我嘗試檢查它是否被註冊,就會炸燬。它編譯罰款,我已經添加了import com.google.android.gcm.GCMRegistrar;我認爲這更多的是我不理解的Java和Eclipse,比GCM,但誰知道

我加一步過濾器忽略com.google.android.gcm.*

和我做確保將我的項目和構建路徑包含在我的本地libs文件夾中的gdm.jar庫。

如果我逐句通過代碼,它會停止,當我嘗試跨過引用GCMRegistrar的第一行時,並說'未找到源'。如果我沒有設置斷點,它在遇到GCMRegistrar時仍然停止,並說'未找到源'。

private void checkRegistration(){ 
    try{ 
      if (!GCMRegistrar.isRegistered(getApplicationContext())) { 
       // Automatically registers application on startup. 
       GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID); 
      } else { 
       final String regId = GCMRegistrar.getRegistrationId(getApplicationContext()); 
       if(regId.equals("")){ 
        GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID); 
       }else{ 
       // Device is already registered on GCM 

        if(regId == Utilities.getGcmRegKey(this)){ 

        }else{ 
         pwClient.updateGCMRef("add", regId, Utilities.getApiKey(this), Utilities.getDeviceId(this)); 
         Utilities.setGcmRegKey(this, regId); 
        } 
       } 
      } 
     }catch(Exception ex){ 
      Log.e("PW", "register error: " + ex.getMessage()); 
     } 
    } 
} 
+0

拋出什麼錯誤存在? –

+0

這不是一個例外,就好像eclipse試圖通過我沒有源代碼的代碼一樣。它停頓並說'source not found' – MattoTodd

+0

當你在eclipse中打開libs文件夾時,gcm.jar上的圖標是否有點小東西來表明它在你的構建路徑中? –

回答

3

我不得不停止對我的GCM項目的工作,但我至少設法得到了GCM客戶端的東西的來源,所以它可以幫助你調試了一下。從R17 SDK工具開始,Google已經讓源碼和javadocs成爲一種正確的痛苦,但它可以完成。

在你找到gcm.jar的同一'dist'目錄下是另一個jar gcm-src.jar - 這就是源代碼。因此在libs目錄下創建一個名爲gcm.jar.properties的新文件。

它應該包含類似

src=C:\\dev\\tools\\android-sdk-windows4.1\\extras\\google\\gcm\\gcm-client\\dist\\gcm-src.jar 

一行(編輯本指SDK安裝,改變\\ s到/ s的,如果你是在Linux上)

現在關閉您的項目,重新打開它,否則它將無法工作,天知道爲什麼!

您現在應該將鼠標懸停在javadoc類型彈出窗口上,並能夠進入GCMRegistrar靜態方法。至於爲什麼你的代碼爆炸了,也許這會讓你更接近。

順便樣本代碼,我根據我的項目上已在登記開始這兩條線

// Check that the device supports GCM (should be in a try/catch) 
GCMRegistrar.checkDevice(this); 
// Check the manifest to be sure this app has all the required permissions. 
GCMRegistrar.checkManifest(this); 

他們可能會揭示事物

+0

添加屬性文件的竅門。 gcm沒有潛在的錯誤。那麼爲什麼我需要源代碼來完成這些東西呢? – MattoTodd

+0

我不確定爲什麼你不能在沒有源代碼的情況下跨過。也許這只是另一個Eclipse Android插件不一致? – NickT

0

根據here一些光,GCM需要使用Android 2.2或更高版本,首先檢查您的清單sdk版本是否正確

二,右鍵單擊您的項目並選擇屬性 =>Java構建路徑 =>標籤,並確保gcm.jar列表

相關問題