2016-08-07 47 views
0

Ich habe seit Tagen mit einem Problem zu kämpfen. Ich war kürzlich von Eclipse auf Android Studio umgestiegen und nachdem ich versucht hatte mein neues Projekt mit Googles Spieledienst (Ranglisten und Errungenschaften) einzurichten, habe ich festgestellt, dass ein paar Klassen zu fehlen scheinen, während andere vollkommen intakt sind. Ich kann mich in Google-Dienste einloggen, ich kann Anzeigen schalten (ein anderes Paket, aber es funktioniert einwandfrei), und alles andere scheint gut zu funktionieren; außer Ladeabsichten. Es sieht so aus, als hätte der SDK-Manager vergessen, das Paket "com.google.android.gms.games.ui ...." in meine SDK aufzunehmen. Das bedeutet, dass ich keine Absichten laden kann (kann keine Ranglisten oder Errungenschaften anzeigen. Meine App stürzt nicht ab, aber ich bekomme eine Fehlermeldung und eine Reihe von Warnungen "konnte nicht gefunden werden/konnte Methode nicht laden" in LogCat .Fehlende Google Play-Spiele Dienstklassen

das ist mein lügt, sobald ich startActivityForResult (....) auf der Spiele-Einstellungen Absichtserklärung für google-Spiele-Service, im Auge behalten die gleichen Fehler Pop-up für Ranglisten und Erfolge zu nennen versuchen:

08-06 22: 59: 07.937 430-1614/I/Activity: START {act = com.google.android.gms.games.SHOW_SETTINGS dat = Version: 9.452.000 flg = 0x4000000 PKG = com.google .android.play.games cmp = com.google.android.play.games/com.google.android.gms.games.ui.client.main.ClientSettingsActivity (hat Extras) u = 0} von pid 10924 08-06 22: 59: 07.997 430-1615 /? I/ActivityManager: Starten Sie proc com.google.android.play.games.ui für Aktivität com.google.android.play.games/com.google.android.gms.games.ui.client.main.ClientSettingsActivity: pid = 11180 uid = 10086 gids = {1028} E/dalvikvm: Kann nicht Klasse 'android.app.ActivityManager $ TaskDescription', verwiesen von Methode com.google.android.gms.games.ui finden. client.ClientFragmentActivity.instantiateGoogleApiClient ** 08-06 22: 59: 08.317 11180-11180 /? W/dalvikvm: VFY: nicht lösbar new-instance 27 (Landroid/app/ActivityManager $ TaskDescription;) in Lcom/google/android/gms/games/ui/client/ClientFragmentActivity; 08-06 22: 59: 08.327 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x22 bei 0x0084 08-06 22: 59: 08.327 11180-11180 /? D/dalvikvm: DexOpt: nicht möglich opt direct call 0x007b um 0x86 in Lcom/google/android/gms/spiele/ui/client/ClientFragmentActivity; .instantiateGoogleApiClient 08-06 22: 59: 08.347 11180-11180 /? W/dalvikvm: Kann nicht aufgelöst werden superklasse von Lcom/google/android/gms/games/ui/GamesFragmentActivity $ 1; (55) 08-06 22: 59: 08,347 11180-11180 /? W/dalvikvm: Link der Klasse 'Lcom/google/android/gms/games/ui/GamesFragmentActivity $ 1;' gescheitert 08-06 22: 59: 08.347 11180-11180 /? E/dalvikvm: Kann nicht finden Klasse 'com.google.android.gms.games.ui.GamesFragmentActivity $ 1', verweist von Verfahren com.google.android.gms.games.ui.GamesFragmentActivity.onCreate 08-06 22: 59: 08.347 11180-11180 /? W/dalvikvm: VFY: nicht lösbar new-instanz 4724 (Lcom/google/android/gms/spiele/ui/GamesFragmentActivity $ 1;) in Lcom/google/android/gms/games/ui/GamesFragmentActivity; 08-06 22: 59: 08,347 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x22 bei 0x0086 08-06 22: 59: 08.347 11180-11180 /? I/dalvikvm: Methode android.view.Window.setStatusBarColor nicht gefunden, referenziert von Methode com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar 08-06 22: 59: 08.347 11180-11180 /? W/dalvikvm: VFY: nicht lösbar virtuelle Methode 8409: Landroid/view/Window ;.setStatusBarColor (I) V 08-06 22: 59: 08.347 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x6e bei 0x0030 08-06 22: 59: 08.347 11180-11180 /? I/dalvikvm: Könnte nicht Methode find android.view.Window.setStatusBarColor, verwiesen von Methode com.google.android.gms.games.ui.GamesFragmentActivity.updateStatusBar 08-06 22: 59: 08.347 11.180 bis 11.180/? W/dalvikvm: VFY: nicht lösbar virtuelles Verfahren 8409: Landroid/Ansicht/Fenster; .setStatusBarColor (I) V 08-06 22: 59: 08.347 11180-11180 /? D/dalvikvm: VFY: Opcode ersetzen 0x6e bei 0x0034 08-06 22: 59: 08.347 11180-11180 /? E/dalvikvm: Könnte nicht Fund Klasse 'android.app.ActivityManager $ TaskDescription', verwiesen von Verfahren com.google.android.gms.games.ui.GamesFragmentActivity.updateTaskDescription 08-06 22: 59: 08,347 11180- 11180 /? W/dalvikvm: VFY: nicht lösbar new-instance 27 (Landroid/app/ActivityManager $ Aufgabenbeschreibung;) in Lcom/google/android/gms/games/ui/GamesFragmentActivity; 08-06 22: 59: 08,347 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x22 bei 0x0040 08-06 22: 59: 08.347 11180-11180 /? W/dalvikvm: Kann nicht aufgelöst werden superklasse von Lcom/google/android/gms/spiele/ui/GamesFragmentActivity $ 1; (55) 08-06 22: 59: 08,347 11180-11180 /? W/dalvikvm: Link der Klasse 'Lcom/google/android/gms/games/ui/GamesFragmentActivity $ 1;' gescheitert 08-06 22: 59: 08.347 11180-11180 /? D/dalvikvm: DexOpt: unable direkten Aufruf 0x6ab7 bei 0x88 in Lcom/google/android/gms/Spiele/ui/GamesFragmentActivity entscheiden; .onCreate 08-06 22: 59: 08.347 11.180 bis 11.180 /? D/dalvikvm: DexOpt: nicht in der Lage, direkt zu entscheiden Aufruf 0x007c um 0x4f in Lcom/google/android/gms/Spiele/UI/GamesFragmentActivity; .updateTaskDescription 08-06 22: 59: 08,357 11180-11180 /? I/dalvikvm: kann nicht Methode android.app.Activity.finishAfterTransition finden, von Methode verwiesen android.support.v4.app.FragmentActivity.onBackPressed 08-06 22: 59: 08.357 11.180 bis 11.180 /? W/dalvikvm: VFY: kann virtuelles Methode 88 nicht auflösen: Landroid/app/Aktivität; .finishAfterTransition() V 08-06 22: 59: 08,357 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x6e bei 0x0012 08-06 22: 59: 08.377 963-1448 /? D/dalvikvm: WAIT_FOR_CONCURRENT_GC gesperrt 0ms 08-06 22: 59: 08.557 963-1448 /? D/dalvikvm: GC_EXPLICIT befreit 564K, 14% frei 9888K/11399K, pausiert 4ms + 6ms, insgesamt 179ms 08-06 22: 59: 08.577 11180-11180 /? W/dalvikvm: VFY: Klasse nicht gefunden in der Signatur (Landroid/view/SearchEvent;) 08-06 22: 59: 08.577 11180-11180 /? I/dalvikvm: Es konnte kein Verfahren android.view.Window $ Callback.onSearchRequested, verwiesen von Verfahren android.support.v7.internal.view.WindowCallbackWrapper.onSearchRequested 08-06 22 finden: 59: 08.577 11.180 bis 11.180/? W/dalvikvm: VFY: nicht lösbar Schnittstellenmethode 8386: Landroid/Ansicht/Window $ Callback; .onSearchRequested (Landroid/view/SearchEvent;) Z 08-06 22: 59: 08.577 11180-11180 /? D/dalvikvm: VFY: Opcode 0x72 bei 0x0002 ersetzen 08-06 22: 59: 08.577 11180-11180 /? I/dalvikvm: Es konnte kein Verfahren android.view.Window $ Callback.onWindowStartingActionMode finden, verwiesen von Verfahren android.support.v7.internal.view.WindowCallbackWrapper.onWindowStartingActionMode 08-06 22: 59: 08.577 11.180 bis 11.180/? W/dalvikvm: VFY: nicht lösbar Schnittstellenmethode 8390: Landroid/view/Window $ Callback ;.onWindowStartingActionMode (Landroid/Ansicht/ActionMode $ Callback; I) Landroid/Ansicht/ActionMode; 08-06 22: 59: 08.577 11180-11180 /? D/dalvikvm: VFY: Ersetzen des Opcodes 0x72 bei 0x0002 08-06 22: 59: 08.597 892-894 /? D/dalvikvm: GC_CONCURRENT befreit 3308K, 27% frei 14043K/19015K, pausiert 12ms + 14ms, insgesamt 74ms 08-06 22: 59: 08.627 11180-11183 /? D/dalvikvm: GC_CONCURRENT befreit 230K, 5% E/AndroidUtils: getCallingContext(): finden konnte nicht Paketnamen von com[email protected]41d70410 Aufruf 08-06 22: 59: 08.867 11180-11180 /? E/ClientUiFragAct: Client UI Aktivitäten müssen mit startActivityForResult gestartet werden 08-06 22: 59: 08.867 11180-11180 /? E/GamesFragmentActivity: Kann nicht auf instanziieren GoogleApiClient; Rettung ...

Denken Sie daran, ich verschiedene sdk Ziele mit ausprobiert habe (17, 21, 23, 24), habe ich versucht, das Mischen und verschiedene Versionen von Bibliotheken übereinstimmt, habe ich versucht, Hinzufügen aller Dienste und Verwenden nur des Minimums (Spiele, Plus, Anzeigen). Ich habe alles versucht, woran ich denken konnte, aber ich bin ziemlich neu und denke, ich übersehe nur etwas relativ Einfaches. Ich kann keinen einzigen Hinweis auf Google finden, indem ich meine Logs und jede Variation von Wörtern benutze, die ich mir vorstellen kann, um einen Hinweis zu finden. Jede Hilfe wird geschätzt.

Update:

Dies ist, wo ich meine showleaderboards Methode aufrufen (in einem Update-Thread für die Spielschleife erstellt):

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

     GSGoogleServices.getInstance().showLeaderboards(); 

     return true; 
    } 

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

Und das ist die showLeaderboards Methode selbst, die die neue Tätigkeit beginnt die verursacht den Fehler in logcat:

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

Überprüfen Sie und dalvikvm Warnungen sind nichts zu tun. Können Sie Ihren tatsächlichen Code, wo Sie 'startActivityForResult()' aufrufen? – ianhanniballake

+0

Ich habe die ursprüngliche Frage mit meiner startActivityForResult-Methode aktualisiert, und ich sollte hinzufügen, dass diese Protokolle mit Version 9.4.0 von Google Services erfasst wurden, und Build-Tools 24.0.1. Testgeräte sind eine Samsung S5 mit Android 6.1 und ein Asus-Transformator mit Android 4.1.1. Gleiches Ergebnis bei Verwendung der vorherigen Dienstversion und Build-Tools 23. – Jay

Antwort

0

Die Lösung wurde gefunden. Ich hatte RC_UNUSED in startacticityforresult auf -1 gesetzt, was eine neue Aktivität ohne den Kontext der Leaderboard-Aktivitätsklasse startet. Einstellung auf einen nicht-negativen Wert löste das Problem