Я пытаюсь добавить сохраненные игры в облачный сервис Google Play Games в существующее приложение для Android, но получаю ошибку 8.
Я использовал Поддержка сохраненных игр в руководстве для Android и Соберите все звезды 2 примера приложения .
Это то, что я пробовал до сих пор:
Настройка консоли и безопасности
Создана игра в игровых сервисах.Сохраненные игры включены, все остальные функции выключены.
Используются «Связанные приложения» и связаны с использованием отладочного отпечатка SHA1.
Проверено выше в консоли API Google, все проверяет и сопоставляет шестнадцатеричную строку SHA1 в консоли и использует keytool.
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 на своем физическом устройстве, где я вошел в систему как авторизованный пользователь тестирования.
Также попытался создать подписанный apk через Android Studio и развернуть его на устройстве с помощью команды adb.При сборке apk, использовали хранилище ключей отладки и ключ.
В обоих случаях я получаю ошибку # 8.Заставка Google Play не отображается, экран просто гаснет на секунду, а затем я получаю сообщение об ошибке.
Logcat
2019-02-26 18: 01: 00.946 4892-7664 /?E / Volley: [131] BasicNetwork.performRequest: Неожиданный код ответа 404 для https://www.googleapis.com/drive/v2beta/apps/self?prettyPrint=false&fields=id
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 (есть дополнения)} из uid 10351 на дисплее 0
2019-02-26 16: 15: 29.378 1517-31079 /?E / ActivityManager: отправка незащищенной трансляции com.motorola.motocare.INTENT_TRIGGER из системы 4525: 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)
Не хватает некоторых разрешений в манифесте?Любая помощь приветствуется.