簡體   English   中英

缺少Google Play游戲服務類

[英]Missing Google play games service classes

幾天來我一直在努力解決這個問題。 我最近從Eclipse切換到Android Studio,並嘗試使用Google的游戲服務(排行榜和成就)設置新項目后,我注意到似乎缺少了很多類,而其他類則完好無損。 我可以登錄googles服務,可以顯示廣告(另一個軟件包,但是仍然可以正常運行),其他一切似乎都可以正常工作; 除了加載意圖。 看來,SDK管理器已忘記將“ com.google.android.gms.games.ui ....”包包含在我的SDK中。 這意味着我無法加載任何意圖(無法顯示排行榜或成就。我的應用程序不會崩潰,但是我確實收到錯誤消息,並且在LogCat中出現了一系列“找不到類/無法加載方法”警告。

當我嘗試在Google游戲服務的游戲設置意圖上調用startActivityForResult(....)時,這是我的日志,請記住,對於排行榜和成就也會彈出相同的錯誤:

08-06 22:59:07.937 430-1614 /? I / ActivityManager:START {act = com.google.android.gms.games.SHOW_SETTINGS dat = version:9452000 flg = 0x4000000 pkg = com.google.android.play.games cmp = com.google.android.play.games / com.google.android.gms.games.ui.client.main.ClientSettingsActivity(有其他功能)u = 0}來自pid 10924 08-06 22:59:07.997 430-1615 /? I / ActivityManager:啟動proc com.google.android.play.games.ui以進行活動com.google.android.play.games/com.google.android.gms.games.ui.client.main.ClientSettingsActivity:pid = 11180 uid = 10086 gids = {1028} E / dalvikvm:找不到方法com.google.android.gms.games.ui.client.ClientFragmentClientity.instantiateGoogleApiClient **中引用的類“ android.app.ActivityManager $ TaskDescription” 06 22:59:08.317 11180-11180 /? W / dalvikvm:VFY:無法解析Lcom / google / android / gms / games / ui / client / ClientFragmentActivity中的新實例27(Landroid / app / ActivityManager $ TaskDescription;); 08-06 22:59:08.327 11180-11180 /? D / dalvikvm:VFY:將操作碼0x22替換為0x0084 08-06 22:59:08.327 11180-11180 /? D / dalvikvm:DexOpt:無法選擇Lcom / google / android / gms / games / ui / client / ClientFragmentActivity; .instantiateGoogleApiClient 08-06 22:59:08.347 11180-11180 /中的0x86處的直接呼叫0x007b? W / dalvikvm:無法解析Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1的超類; (55)08-06 22:59:08.347 11180-11180 /? W / dalvikvm:類'Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1;'的鏈接 失敗08-06 22:59:08.347 11180-11180 /? E / dalvikvm:找不到方法com.google.android.gms.games.ui.GamesFragmentActivity.onCreate 08-06 22:59引用的類“ com.google.android.gms.games.ui.GamesFragmentActivity $ 1”: 08.347 11180-11180 /? W / dalvikvm:VFY:無法解析Lcom / google / android / gms / games / ui / GamesFragmentActivity中的新實例4724(Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1;); 08-06 22:59:08.347 11180-11180 /? D / dalvikvm:VFY:將操作碼0x22替換為0x0086 08-06 22:59:08.347 11180-11180 /? I / dalvikvm:找不到方法com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar 08-06 22:59:08.347 11180-11180 /引用的方法android.view.Window.setStatusBarColor? W / dalvikvm:VFY:無法解析虛擬方法8409:Landroid / view / Window; .setStatusBarColor(I)V 08-06 22:59:08.347 11180-11180 /? D / dalvikvm:VFY:將操作碼0x6e替換為0x0030 08-06 22:59:08.347 11180-11180 /? I / dalvikvm:找不到方法com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar 08-06 22:59:08.347 11180-11180 /引用的方法android.view.Window.setStatusBarColor? W / dalvikvm:VFY:無法解析虛擬方法8409:Landroid / view / Window; .setStatusBarColor(I)V 08-06 22:59:08.347 11180-11180 /? D / dalvikvm:VFY:將操作碼0x6e替換為0x0034 08-06 22:59:08.347 11180-11180 /? E / dalvikvm:找不到方法com.google.android.gms.games.ui.GamesFragmentActivity.updateTaskDescription 08-06 22:59:08.347 11180-11180 /引用的類'android.app.ActivityManager $ TaskDescription'。 W / dalvikvm:VFY:無法解析Lcom / google / android / gms / games / ui / GamesFragmentActivity中的新實例27(Landroid / app / ActivityManager $ TaskDescription;); 08-06 22:59:08.347 11180-11180 /? D / dalvikvm:VFY:將操作碼0x22替換為0x0040 08-06 22:59:08.347 11180-11180 /? W / dalvikvm: 無法解析 Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1的超類; (55)08-06 22:59:08.347 11180-11180 /? W / dalvikvm:類'Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1;'的鏈接 失敗08-06 22:59:08.347 11180-11180 /? D / dalvikvm:DexOpt:無法在Lcom / google / android / gms / games / ui / GamesFragmentActivity; .onCreate 08-06 22:59:08.347 11180-11180 /中選擇在0x88的直接呼叫0x6ab7 D / dalvikvm:DexOpt:無法在Lcom / google / android / gms / games / ui / GamesFragmentActivity; .updateTaskDescription 08-06 22:59:08.357 11180-11180 /中選擇在0x4f的直接呼叫0x007c? I / dalvikvm: 找不到方法android.app.Activity.finishAfterTransition,方法android.support.v4.app.FragmentActivity.onBackPressed 08-06 22:59:08.357 11180-11180 /嗎? W / dalvikvm:VFY:無法解析虛擬方法88:Landroid / app / Activity; .finishAfterTransition()V 08-06 22:59:08.357 11180-11180 /? D / dalvikvm:VFY:將操作碼0x6e替換為0x0012 08-06 22:59:08.377 963-1448 /? D / dalvikvm:WAIT_FOR_CONCURRENT_GC已阻止0ms 08-06 22:59:08.557 963-1448 /? D / dalvikvm:GC_EXPLICIT釋放564K,釋放14%釋放9888K / 11399K,暫停4ms + 6ms,總計179ms 08-06 22:59:08.577 11180-11180 /? W / dalvikvm:VFY:無法找到簽名中引用的類(Landroid / view / SearchEvent;)08-06 22:59:08.577 11180-11180 /? I / dalvikvm:找不到方法android.view.Window $ Callback.onSearchRequested,從方法android.support.v7.internal.view.WindowCallbackWrapper.onSearchRequested引用08-06 22:59:08.577 11180-11180 /? W / dalvikvm:VFY:無法解析接口方法8386:Landroid / view / Window $ Callback; .onSearchRequested(Landroid / view / SearchEvent;)Z 08-06 22:59:08.577 11180-11180 /? D / dalvikvm:VFY:將操作碼0x72替換為0x0002 08-06 22:59:08.577 11180-11180 /? I / dalvikvm:找不到方法android.view.Window $ Callback.onWindowStartingActionMode,該方法是從方法android.support.v7.internal.view.WindowCallbackWrapper.onWindowStartingActionMode引用的08-06 22:59:08.577 11180-11180 /? W / dalvikvm:VFY:無法解析接口方法8390:Landroid / view / Window $ Callback; .onWindowStartingActionMode(Landroid / view / ActionMode $ Callback; I)Landroid / view / ActionMode; 08-06 22:59:08.577 11180-11180 /? D / dalvikvm:VFY:將操作碼0x72替換為0x0002 08-06 22:59:08.597 892-894 /? D / dalvikvm:GC_CONCURRENT釋放了3308K,27%釋放了14043K / 19015K,暫停了12ms + 14ms,總計74ms 08-06 22:59:08.627 11180-11183 /? D / dalvikvm:GC_CONCURRENT釋放了230K,5%的E / AndroidUtils:getCallingContext():從com.google.android.gms.games.ui.client.main.ClientSettingsActivity@41d70410 08-06 22:中找不到調用包名稱59:08.867 11180-11180 /? E / ClientUiFragAct:客戶端UI活動必須以startActivityForResult 08-06 22:59:08.867 11180-11180 /開始? E / GamesFragmentActivity:無法實例化GoogleApiClient; 救命...

請記住,我嘗試使用不同的sdk目標(17、21、23、24),嘗試混合並匹配不同版本的庫,嘗試添加所有服務並僅使用最小服務(游戲,以及,廣告)。 我已經嘗試了所有可能想到的方法,但是對於我來說,我還是很陌生,我只是想忽略一些相對簡單的東西。 我只是無法使用自己的日志和我能想到的各種單詞變化來找到關於Google的單個提示。 任何幫助表示贊賞。

更新:

這是我調用showleaderboards方法的地方(在為游戲循環創建的更新線程中):

@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
    if (pSceneTouchEvent.isActionDown()) {

        GSGoogleServices.getInstance().showLeaderboards();

        return true;
    }

    return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
}

這是showLeaderboards方法本身,它啟動了新活動,該活動導致logcat中的錯誤:

public void showLeaderboards(){
    if(mHelper.isSignedIn()){
        mActivity.startActivityForResult(Games.getSettingsIntent(getApiClient()), RC_UNUSED);
    } else {
        mHelper.beginUserInitiatedSignIn();
    }
}

找到了解決方案。 我在startacticityforresult中將RC_UNUSED設置為-1,這將在沒有排行榜活動類的上下文的情況下啟動新活動。 將其設置為非負值可以解決此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM