如何通过Android应用登录Google Play游戏(错误8)

时间:2019-02-26 03:24:19

标签: java android google-play-games

我正在尝试将保存游戏到Google Play Games云服务中添加到现有的android应用中,但出现错误8。

我正在使用saved games support in android guideCollect all the stars 2 sample app

这是我到目前为止尝试过的:

控制台和安全设置

在游戏服务中创建了游戏。已保存的游戏已打开,所有其他功能均已关闭。

使用“链接的应用程序”并使用调试SHA1指纹进行链接。

上面在Google API控制台中进行了验证,所有代码都在控制台中使用keytool签出并匹配SHA1十六进制字符串。

keytool -list -keystore "C:\Users\dejan\.android\debug.keystore" -storepass android

将自己添加为测试人员,并启用了所有环境的测试。

SDK管理器

在Android Studio中,使用SDK工具添加“ Google Play服务”

Android清单

在android清单中添加了以下内容:

   <meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

在Android主要活动中

已添加

private static final int RC_SIGN_IN = 9001;
private GoogleSignInClient mGoogleSignInClient;
// The currently signed in account, used to check the account has changed outside of this activity when resuming.
private GoogleSignInAccount mSignedInAccount = null;

在添加的OnCreated方法中:

   //initialize google play games
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
                // Since we are using SavedGames, we need to add the SCOPE_APPFOLDER to access Google Drive.
                .requestScopes(Drive.SCOPE_APPFOLDER)
                .build();
        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

对于按钮,单击添加:

startActivityForResult(mGoogleSignInClient.getSignInIntent(), RC_SIGN_IN);

最后,添加了onActivityResult

  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == RC_SIGN_IN) {

        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(intent);

        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            onConnected(account);
        } catch (ApiException apiException) {
            String message = String.format("%s (%s)", getString(R.string.signin_other_error), apiException.getStatusCode());
            mGoogleSignInError = true;
            Snackbar snackbar = Snackbar.make(findViewById(R.id.mainContainerMenu), message, Snackbar.LENGTH_LONG);
            snackbar.show();

            onDisconnected();


        }
    }

    super.onActivityResult(requestCode, resultCode, intent);

}

测试

我尝试将应用程序从Android Studio运行到以测试授权用户身份登录的物理设备。

另外,尝试通过Android Studio制作签名的APK,并使用adb命令将其部署到设备上。构建APK时,请使用调试密钥库和密钥。

在两种情况下,我都遇到错误#8。 Google Play初始屏幕未显示,屏幕仅变黑了一秒钟,然后出现错误。

Logcat

  

2019-02-26 18:01:00.946 4892-7664 /? E / Volley:[131] BasicNetwork.performRequest:https://www.googleapis.com/drive/v2beta/apps/self?prettyPrint=false&fields=id

的意外响应代码404      

2019-02-26 16:15:29.365 1517-18694 /? I / ActivityManager:START u0 {act = com.google.android.gms.auth.GOOGLE_SIGN_IN pkg = com.google.android.gms cmp = com.google.android.gms / .auth.api.signin.ui.SignInActivity(有额外的)},显示在0的uid 10351中

     

2019-02-26 16:15:29.378 1517-31079 /? E / ActivityManager:从系统4525发送非受保护的广播com.motorola.motocare.INTENT_TRIGGER:com.motorola.process.system / 1000 pkg com.motorola.motgeofencesvc       java.lang.Throwable           在com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)           在com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)           在android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)           在com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)           在android.os.Binder.execTransact(Binder.java:565)

我在清单中缺少某些权限吗?任何帮助表示赞赏。

0 个答案:

没有答案