我正在尝试将保存游戏到Google Play Games云服务中添加到现有的android应用中,但出现错误8。
我正在使用saved games support in android guide和Collect all the stars 2 sample app。
这是我到目前为止尝试过的:
在游戏服务中创建了游戏。已保存的游戏已打开,所有其他功能均已关闭。
使用“链接的应用程序”并使用调试SHA1指纹进行链接。
上面在Google API控制台中进行了验证,所有代码都在控制台中使用keytool签出并匹配SHA1十六进制字符串。
keytool -list -keystore "C:\Users\dejan\.android\debug.keystore" -storepass android
将自己添加为测试人员,并启用了所有环境的测试。
在Android Studio中,使用SDK工具添加“ Google Play服务”
在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"/>
已添加
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初始屏幕未显示,屏幕仅变黑了一秒钟,然后出现错误。
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
的意外响应代码4042019-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)
我在清单中缺少某些权限吗?任何帮助表示赞赏。