gpt4 book ai didi

android - GameHelper登录失败但不是GoogleAPIClient的登录

转载 作者:行者123 更新时间:2023-11-29 14:37:52 25 4
gpt4 key购买 nike

我一直在努力使用 GameHelper 对象连接 GooglePlayServices。打开我的应用程序后,我收到“Google Play 服务未知问题”弹出窗口和登录错误代码 8。我最初认为这是我设置 Google Play 服务帐户的方式的问题,但在重新创建它之后次并确保一切都在检查中,我开始认为这是另一回事。

因此,我尝试设置一个单独的 GoogleApiClient 以与 GameHelper 对象一起使用(即使它提供了自己的对象),并且该客户端登录正常,尽管错误消息仍然从 GameHelper 对象中弹出。所以我取出了GameHelper对象,但是GoogleApiClient又无法登录了。

我只想使用其中之一,而不是同时使用两者,但似乎如果我只使用这些对象中的一个,它就不会起作用。关于 GameHelper 或 GoogleApiClient,我是否缺少某些东西,我需要进行不同的设置才能让它们中的任何一个独立工作?

代码如下:

public class MyHomeActivity extends FragmentActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

private GameHelper gameHelper;
private GoogleApiClient client;

@Override
public void onCreate(Bundle savedInstanceState) {

private void setupGooglePlayServices() {
client = new GoogleApiClient.Builder(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();

GameHelper.GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() {
@Override
public void onSignInFailed() {
Log.i("Game Helper", "Sign in failed");
}

@Override
public void onSignInSucceeded() {
Log.i("Game Helper", "Sign in succeeded");
}
};

gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
//TODO Remove this for production
gameHelper.enableDebugLog(true);

gameHelper.setup(gameHelperListener);
}

@Override
protected void onStart() {
super.onStart();
gameHelper.onStart(this);
client.connect();
}
@Override
protected void onStop() {
super.onStop();
gameHelper.onStop();
client.disconnect();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
gameHelper.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onConnected(Bundle bundle) {
Log.i("Google API", "Connection Complete");
}

@Override
public void onConnectionSuspended(int i) {

}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.i("Google API", "Connection Failed: " + connectionResult.toString());
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.app.package"
android:versionCode="2"
android:versionName="1.0.1">

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />

<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:name=".MyHomeActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/google_play_id" />
<meta-data android:name="com.google.android.gms.appstate.APP_ID"
android:value="@string/google_play_id" />
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />


</manifest>

日志

D/GameHelper﹕ GameHelper: Debug log enabled.
D/GameHelper﹕ GameHelper: Setup: requested clients: 1
D/GameHelper﹕ GameHelper: onStart
D/GameHelper﹕ GameHelper: Connecting client.
I/Google API﹕ Connection Complete <-- This is my log telling me the GoogleApiClient connected
D/GameHelper﹕ GameHelper: onConnectionFailed
D/GameHelper﹕ GameHelper: Connection failure:
D/GameHelper﹕ GameHelper: - code: INTERNAL_ERROR(8)
D/GameHelper﹕ GameHelper: - resolvable: false
D/GameHelper﹕ GameHelper: - details: ConnectionResult{statusCode=INTERNAL_ERROR, resolution=null}
D/GameHelper﹕ GameHelper: onConnectionFailed: WILL resolve because we have below the max# of attempts, 0 < 3
D/GameHelper﹕ GameHelper: onConnectionFailed: resolving problem...
D/GameHelper﹕ GameHelper: resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=INTERNAL_ERROR, resolution=null}
D/GameHelper﹕ GameHelper: resolveConnectionResult: result has no resolution. Giving up.
W/GameHelper﹕ disconnect() called when client was already disconnected.
D/GameHelper﹕ GameHelper: Notifying LISTENER of sign-in FAILURE (error)
D/GameHelper﹕ GameHelper: onStop
D/GameHelper﹕ GameHelper: Client already disconnected when we got onStop.

最佳答案

好吧,我想通了,这是其中之一“认真的?就这样吗?”时刻。要使用 Google Play 服务进行身份验证,您需要在 Google Play 开发者控制台中启用 Drive APK 和 Drive SDK。如果我从我的 logcat 中删除过滤器,我会看到以下错误:

07-30 13:00:28.719    2487-2587/? E/Volley﹕ [260] tm.a: Unexpected response code 404 for https://www.googleapis.com/drive/v2internal/files/1hV5vzTnhxozzjUvSgct8oUmqdha4xkiF-K_vDD8BEha8aoc6oZLklxxgZmMVHY46C6uzZzk?prettyPrint=false...
07-30 13:00:43.406 2487-3187/? E/DriveAsyncService﹕ Authorization has been revoked by the user. Reconnect the Drive API client to reauthorize.

启用 Google Drive API 后,它的效果非常好。我不确定这方面的文档在哪里,但这是我的答案。

关于android - GameHelper登录失败但不是GoogleAPIClient的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24996728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com