尝试连接到Google Play时,应用崩溃了

时间:2017-09-14 15:49:41

标签: android google-play huawei

所以昨天我一整天都试图解决这个问题。 我的应用应该连接到GooglePlay(为了访问排行榜),但只要我运行GoogleApiClient.connect()方法,应用就会崩溃(与.enableAutoManage相同的问题)。我甚至无法捕获错误,因为客户端似乎运行了一个新线程。

我按如下方式初始化GoogleApiClient

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

一旦我运行gaClient.connect(),即使我在其周围添加了try-catch声明,该应用也会崩溃。 onConnectionFailed侦听器未激活。 我对项目有以下依赖

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' }

我也试过了版本:11.0.4

stacktrace看起来像这样:

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)

由于堆栈跟踪,我认为它与我的手机有关,但不幸的是我无法访问另一个甚至是模拟器。如果无法修复,是否有任何解决方法?

我也错过了让用户选择他想要选择的帐户的功能,这是否已经集成在connect()方法中?

我知道有一个非常类似的问题,但没有一个答案对我有用。

提前致谢!

1 个答案:

答案 0 :(得分:0)

在构建ConnectionCallback时,您还需要添加GoogleApiClient

将其添加到初始化中。

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();