Google play game service код ошибки 400

есть приложение, которое использует сервис play games, но по какой-то причине оно перестает работать. кажется, несколько раз я могу войти успешно, но обычно - нет. если я проверил трафик API, то около 10% получили код ответа = 200, а другие - 404.

методы get 404:

  • игры.приложения.играл
  • игры.события.запись

когда я пытался проверить ошибку в журнале, я вижу:

11705-13707/com.google.android.gms W/GamesServiceBroker: Client connected with SDK 12171000, Services 11975436, and Games 54390036
11705-9262/com.google.android.gms E/BoundService: No such BoundService for action: com.google.android.gms.auth.APP_CERT
11705-9262/com.google.android.gms E/BoundService: No such BoundService for action: com.google.android.gms.auth.APP_CERT
691-778/system_process E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0)
8876-8890/com.agminstruments.drumpadmachine V/FA: Inactivity, disconnecting from the service
691-778/system_process E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0)
2254-2269/? I/PerfService: PerfServiceNative_getPackName
11705-16860/com.google.android.gms E/Volley: [3966] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/games/v1/players/me?language=ru-RU
11705-9262/com.google.android.gms E/PlayerAgent: Unable to load player g08394879143000804289
11705-9262/com.google.android.gms W/PlayerAgent: {"errors":[{"domain":"global","reason":"invalid","message":"Invalid applicationId with value . Reason: No application ids specified."}],"code":400}
3978-3978/com.google.android.play.games.ui I/SignInActivity: Transition from 8 to 11
3978-3978/com.google.android.play.games.ui W/SignInActivity: onSignInFailed()...
3978-3978/com.google.android.play.games.ui W/SignInActivity: Sign in failed during 8
3978-3978/com.google.android.play.games.ui W/SignInActivity: ==> Returning non-OK result: 10002

Я не понимаю, почему нет идентификатора в сообщении " недопустимый applicationId со значением .- потому что я добавил в заявку id. также я попытался изменить идентификатор, и в этом случае я получил ошибку, что ID XXXXXXXXXXXX не связан с app my.пакет.имя.

также я проверил Application ID, SHA отпечатки пальцев , реимпорт google-services.json также попытался добавить вручную OAuth2 Client ID из связанных приложений. Проверьте инструкцию play services, и все выглядит нормально. что еще я могу проверить?

обновление:

пытался обновить play-servies до 11.8.0 и использовать GoogleSignInClient

 mGoogleSignInClient = GoogleSignIn.getClient(application, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
 activity.startActivityForResult(mGoogleSignInClient.getSignInIntent(), 312);

но также получил ошибку:

com.google.android.gms.common.api.ApiException: 4: 

4 ответов


попробуйте это, Во-первых, начните с отладки Play services,

  • включить отладочные службы воспроизведения в коде > сделать apk > установить на устройство > открыть "монитор" из папки "инструменты" в Android sdk > подключить устройство к ПК > выполнить

  • после отладки, если вы получили это сообщение

" У вас неправильные конфигурации, связанные с OAUth2, пожалуйста, проверьте. Подробный ошибка; UNREGISTERED_ON_API_CONSOLE" "OnSignInFailed ()..."

  • на

enter image description here

просто скопируйте / вставьте "сертификат подписи приложения" "отпечаток сертификата SHA-1" - вместо "загрузить сертификат" "отпечаток сертификата SHA-1", который является одним из вашего хранилища ключей, внутри клиента API ID OAuth 2.0 .

Это сделает вашу работу!!

на данный момент google play games больше не подключается к локальным. Но это связь. успешно, когда он был импортирован в Google play store (Google App signing делает именно то, что он должен делать: он изменяет ваш SHA1 с "сертификата загрузки" на "подпись приложения").

Примечание: выше изображение взято из одного из открытых выпусков GitHub. Надеюсь, это поможет!!


У меня также был " com.гуглить.андроид.СБМ.общий.прикладной программный интерфейс.ApiException: 4" на устройстве. Обновление приложения Google Play Games решило эту проблему для меня.

затем мне просто нужно было вручную нажать кнопку входа в Google в моем приложении. Надеюсь, это поможет!

использование gms_library_version '11.8.0' и код, который я использую:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //...
    mGoogleSignInClient = GoogleSignIn.getClient(this, new GoogleSignInOptions
            .Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build());
    //...
 }



// when the button gets clicked
public void startSignInIntent() {
    startActivityForResult(mGoogleSignInClient.getSignInIntent(), RC_SIGN_IN);
}


    @Override
public 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 = apiException.getMessage();
            if (message == null || message.isEmpty()) {
                message = getString(R.string.signin_other_error);
            }

            onDisconnected();

            new AlertDialog.Builder(this)
                    .setMessage(message)
                    .setNeutralButton(android.R.string.ok, null)
                    .show();
        }
    }

    //...
  }

Очистка кэша и данных также является одним из основных решений этой ошибки.

1.Перейдите в Настройка > > перейти к настройке приложения (в некоторых устройствах настройка приложения называется приложениями). 2.Перейти к, все приложения > > Найти Google Play Store > > Очистить данные и Кэш 3.После того, как вы очистите все, Далее вам нужно заставить остановить приложение. Кроме того, найдите Google Services Framework > > открыть Google Services Framework > > очистить кэш и данные Теперь перезагрузите устройство и попробуйте скачать приложение.


как рассказали здесь. код ошибки 4 означает

public static final int SIGN_IN_REQUIRED

клиент попытался подключиться к службе, но пользователь не подписано в. Клиент может продолжить работу без использования API. В качестве альтернативы, если hasresolution() возвращает true, клиент может вызвать startResolutionForResult (Activity, int), чтобы предложить пользователю войти в систему. После входа в действие возвращается RESULT_OK с дальнейшими попытками должен преуспевать.

Постоянное Значение: 4

поэтому убедитесь, что SHA-1 signing-certificate отпечаток пальца вашего приложения в консоли разработчиков google принадлежит к тому же ключу, который используется для подписи APK вы тестируете.

при сборке debug build Android Studio используйте собственный ключ отладки. Вы можете изменить его с

щелчок правой кнопкой мыши по папке приложения в Project dir - > выбор "Open Module Settings" ->"Signing" tab - > настройте тот же ключ,который вы упомянули в консоли Google dev. После этого перейдите на вкладку "типы сборки" и выберите конфигурацию подписи.

или

оформить заказ этот ответ.