2014-02-27 40 views
2

我試圖在應用程序的瑣事部分實現一個非常簡單的排行榜。在過去的幾天中,我一直盯着這段代碼無濟於事 - 無論我嘗試登錄屏幕只是無限循環(EG當我開始活動時,我得到「連接到Google Play遊戲,它彈出我的同步Google帳戶,我選擇一個,然後回到「再次連接到Google Play遊戲」的活動中。無論用戶輸入什麼,它都會這樣做。我得到的唯一錯誤是Google Play遊戲 - 無限期登錄循環

02 -27 15:24:20.735:E/dalvikvm(6467):找不到類com.google.android.gms.internal.fq $ b',從com.google.android.gms.internal.fq方法引用。 a

而且這個錯誤也只是第一次嘗試時顯示,如果我再次嘗試登錄,即使我去應用程序的其他位置並返回到t rivia。

這裏是我的提交分數到排行榜代碼:

int answers; 
Button subScore; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.scorescreen); 

    Intent mIntent = getIntent(); 
    answers = mIntent.getIntExtra("answers", 0); 

    subScore = (Button) findViewById(R.id.bSubScore); 
    subScore.setText("" + answers + "/100"); 

    beginUserInitiatedSignIn(); 

} 

@Override 
public void onSignInFailed() { 
    subScore.setText("FAYULED"); 
    // TODO Auto-generated method stub 
    Log.d("GPS", "failed"); 

} 

@Override 
public void onSignInSucceeded() { 
    Log.d("GPS", "succeeded"); 
    subScore.setText("WE COO"); 
    Games.Leaderboards.submitScore(getApiClient(), "laser", 12345); 
    startActivityForResult(Games.Leaderboards.getLeaderboardIntent(
      getApiClient(), "CgkIvIukofYXEAIQAQ"), 5); 

} 

}

而不會繼續signInFailed()或signInSucceeded()。我檢查了日誌。我正在從BaseGameUtils庫項目擴展BaseGameActivity。我有適當的進口。我已經做了嘗試,並想出解決辦法

事情:

  • 確信的BaseGameUtils是一個庫項目
  • 確保我有谷歌,播放services_lib作爲庫項目
  • 製造確保BaseGameUtils有一個參考google-play-services_lib
  • 確保我的項目有一個對BaseGameUtils的引用(我也嘗試過引用BaseGameUtils和google-play-services_lib)
  • 確保我的Google Play遊戲具有有效的Oath2.0客戶端ID,併爲我的密鑰存儲庫提供了正確的SHA1密鑰
  • 確保我在res-> values中有一個ids.xml文件,其中包含我的12位數字遊戲的客戶端ID和排行榜ID
  • 確保我在實際安卓設備上運行遊戲作爲測試人員帳戶登錄
  • 確保測試人員帳戶明確列在Google Play開發者控制檯的「測試人員帳戶」下。
  • 確保我在Android設備上運行的遊戲版本實際上是帶有與Oath2.0客戶端相同的密鑰的簽名版本
  • 確保我的遊戲鏈接到正確的應用程序我的開發人員控制檯和包名稱相匹配。
  • 確保我在標籤中的manifest.xml中有適當的元數據標籤。

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />

任何建議,將衷心感謝,我已經挖了近一個星期試圖弄清楚這一點無濟於事。

在此先感謝您的時間!

+0

我不知道這是否可行,但我認爲這是值得一試。從** onCreate **中取出** beginUserInitiatedSignMethod **。相反,將其放入偵聽器的** onClick **方法中,並將偵聽器附加到** onCreate **中的按鈕。然後點擊你的應用程序中的按鈕,看看它是否工作。 – Ogen

+0

同樣的事情:/我很確定它最初是在一個按鈕的onClick()中,但我將它移到了onCreate()中,以獲得相同的「值得一試」推理。 – user3362723

+0

請張貼整個logcat(不只是錯誤)。建議移動到按鈕,因爲它最初..並顯示從這一點日誌。您是否能夠成功運行ButtonClicker(或其他Google項目)? – user2346305

回答

1

這看起來像您的代碼可能使用BaseGameActivity。這不再是推薦的方法。我知道這很痛苦,但是如果你重新編寫登錄邏輯直接使用GoogleApiClient,那麼你就不會有這個問題。只需要幾分鐘。

This tutorial應該引導您完成整個過程。