2017-09-14 2 views
0

Also habe ich gestern versucht, das Problem den ganzen Tag zu lösen. Meine App sollte eine Verbindung zu GooglePlay herstellen (um auf die Ranglisten zuzugreifen), aber sobald ich die GoogleApiClient.connect() Methode starte, stürzt die App ab (das gleiche Problem mit .enableAutoManage). Ich kann nicht einmal einen Fehler erkennen, weil der Client anscheinend einen neuen Thread ausführt.App stürzt beim Versuch ab, eine Verbindung zu Google Play herzustellen

ich initialisieren GoogleApiClient wie folgt:

GoogleApiClient gaClient; 
gaClient = new GoogleApiClient.Builder(this) 
     .addOnConnectionFailedListener(this) 
     .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
     .build(); 

Sobald ich gaClient.connect() die App laufen stürzt, auch wenn ich um eine try-catch Erklärung setzen. Der onConnectionFailed Listener wird nicht aktiviert. I hava die folgenden Abhängigkeiten auf dem Projekt

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:26.+' 
compile 'com.android.support:design:26.+' 
compile 'com.google.android.gms:play-services-games:11.0.2' 
compile 'com.google.android.gms:play-services-auth:11.0.2' 
compile 'com.google.android.gms:play-services-ads:11.0.2' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
testCompile 'junit:junit:4.12' } 

Ich habe auch versucht die Version: 11.0.4

Der Stacktrace sieht wie folgt aus:

java.lang.NullPointerException: Attempt to invoke virtual method 'int com.huawei.lcagent.client.LogCollectManager.getUserType()' on a null object reference 
at com.android.server.util.ReportTools.getUserType(ReportTools.java:86) 
at com.android.server.util.ReportTools.isBetaUser(ReportTools.java:73) 
at com.android.server.util.ReportTools.report(ReportTools.java:58) 
at com.android.server.util.HwUserBehaviourRecord.appExitRecord(HwUserBehaviourRecord.java:65) 
at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(ActivityManagerService.java:1523) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:150) 
at android.os.HandlerThread.run(HandlerThread.java:61) 
at com.android.server.ServiceThread.run(ServiceThread.java:46) 

Wegen der stacktrace Ich glaube es hat etwas mit meinem Telefon zu tun, aber leider habe ich keinen Zugang zu einem anderen oder sogar einem Emulator. Gibt es eine Problemumgehung, wenn das nicht behoben werden kann?

Ich vermisse auch eine Funktion, um den Benutzer wählen, welches Konto er wählen möchte, ist dies in der connect() Methode bereits integriert?

Ich bin mir bewusst, dass es eine sehr ähnliche Frage bereits gibt, aber keine der Antworten funktionierte für mich.

Vielen Dank im Voraus!

Antwort

0

Sie müssen auch ConnectionCallback hinzufügen, wenn Sie Ihre GoogleApiClient bauen.

Fügen Sie dies zu seiner Initialisierung hinzu.

GoogleApiClient gaClient; 
gaClient = new GoogleApiClient.Builder(this) 
    .addOnConnectionFailedListener(this) 
    .addConnectionCallbacks(this) // with this you will have to implement another method onConnected and then .connect method will work fine. 
    .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
    .build(); 
+0

Dank aber das funktioniert auch nicht, keine der Methoden aufgerufen wird (ich glaube, ich einmal diese umgesetzt hatte, forgott dass ganz zu schweigen) – Regedit

+0

sah ich den stacktrace und beobachten, dass Fehler auf der Leitung 'LogCollectManager.getUserType() 'bitte PLZ in Bezug auf diese .. –

+0

Das Problem ist, dass ich nie diese Methode aufrufen oder sogar' LogCollectManager' verwenden, diese Zeile wird vom GoogleApiClient aufgerufen, nachdem ich die 'connect()' Methode ausgeführt habe – Regedit

Verwandte Themen