缺少Google游戏服务课程

时间:2016-08-07 05:21:02

标签: java android android-studio android-gradle

我几天来一直在努力解决这个问题。我最近从Eclipse切换到Android Studio,在尝试使用Google的游戏服务(排行榜和成就)设置我的新项目之后,我发现很多课程似乎都缺失了,而其他人完好无损。我可以登录谷歌服务,我可以展示广告(另一个包,但它完美无缺),其他一切似乎工作正常;除了加载意图。似乎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 for   活动   com.google.android.play.games/com.google.android.gms.games.ui.client.main.ClientSettingsActivity:   pid = 11180 uid = 10086 gids = {1028}    E / dalvikvm:找不到   class' android.app.ActivityManager $ TaskDescription',引用自   方法   com.google.android.gms.games.ui.client.ClientFragmentActivity.instantiateGoogleApiClient **   08-06 22:59:08.317 11180-11180 /? W / dalvikvm:VFY:无法解决   新实例27(Landroid / app / ActivityManager $ TaskDescription;)in   LCOM /谷歌/安卓/ GMS /游戏/ UI /客户/ ClientFragmentActivity; 08-06   22:59:08.327 11180-11180 /? D / dalvikvm:VFY:替换操作码0x22 at   0x0084 08-06 22:59:08.327 11180-11180 /? D / dalvikvm:DexOpt:无法   选择直接调用0x007b在0x86 in   LCOM /谷歌/安卓/ GMS /游戏/ UI /客户/ ClientFragmentActivity; .instantiateGoogleApiClient   08-06 22:59:08.347 11180-11180 /? W / dalvikvm:无法解决   超类   LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity $ 1; (55)08-06   22:59:08.347 11180-11180 /? W / dalvikvm:班级的链接   ' LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity $ 1;'失败   08-06 22:59:08.347 11180-11180 /? E / dalvikvm:找不到上课   ' com.google.android.gms.games.ui.GamesFragmentActivity $ 1',引用   从方法   com.google.android.gms.games.ui.GamesFragmentActivity.onCreate 08-06   22:59:08.347 11180-11180 /? W / dalvikvm:VFY:无法解决   新实例4724   (Lcom / google / android / gms / games / ui / GamesFragmentActivity $ 1;)in   LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity; 08-06   22:59:08.347 11180-11180 /? D / dalvikvm:VFY:替换操作码0x22 at   0x0086 08-06 22:59:08.347 11180-11180 /?我/ dalvikvm:找不到   方法android.view.Window.setStatusBarColor,从方法引用   com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar   08-06 22:59:08.347 11180-11180 /? 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 /?我/ dalvikvm:不能   find方法android.view.Window.setStatusBarColor,引用自   方法   com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar   08-06 22:59:08.347 11180-11180 /? 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:不能   找到class' android.app.ActivityManager $ TaskDescription',引用   从方法   com.google.android.gms.games.ui.GamesFragmentActivity.updateTaskDescription   08-06 22:59:08.347 11180-11180 /? W / dalvikvm:VFY:无法解决   新实例27(Landroid / app / ActivityManager $ TaskDescription;)in   LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity; 08-06   22:59:08.347 11180-11180 /? D / dalvikvm:VFY:替换操作码0x22 at   0x0040 08-06 22:59:08.347 11180-11180 /? W / dalvikvm:无法解决   超类   LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity $ 1; (55)08-06   22:59:08.347 11180-11180 /? W / dalvikvm:班级的链接   ' LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity $ 1;'失败   08-06 22:59:08.347 11180-11180 /? D / dalvikvm:DexOpt:无法选择   直接调用0x6ab7在0x88 in   Lcom / google / android / gms / games / ui / GamesFragmentActivity; .onCreate 08-06   22:59:08.347 11180-11180 /? D / dalvikvm:DexOpt:无法选择直接   在0x4f处调用0x007c   LCOM /谷歌/安卓/ GMS /游戏/ UI / GamesFragmentActivity; .updateTaskDescription   08-06 22:59:08.357 11180-11180 /? 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 at   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 /视图/窗口$回调; .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 /视图/窗口$回调; .onWindowStartingActionMode   (Landroid /视图/ ActionMode $回调; I)Landroid /视图/ ActionMode; 08-06   22:59:08.577 11180-11180 /? D / dalvikvm:VFY:替换操作码0x72 at   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),我尝试过混合和匹配不同版本的库,我尝试过添加所有服务并且仅使用最小值(游戏,加号,广告)。我已经尝试了所有我能想到的东西,但我很陌生,我想我只是忽略了一些相对简单的东西。我只是无法使用我的日志在谷歌上找到一个提示,而且我能想到的每一个字词变化都能找到线索。任何帮助表示赞赏。

更新

这是我调用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();
    }
}

1 个答案:

答案 0 :(得分:0)

已找到解决方案。我将startacticityforresult中的RC_UNUSED设置为-1,这将启动一个没有排行榜活动类上下文的新活动。将其设置为非负值可解决问题