Intereting Posts
Обработка экрана без потери данных – Android Получить уникальный идентификатор устройства Android? Как добавить маркер / контакт на ImageView Android? Android Gradle заменить имя пакета для значения в манифесте Как запустить Домашний экран программно в Android Различия в Android между подписанными и неподписанными файлами .apk? Исходный код драйверов устройств хранения и сетевых устройств для Nexus 6 и Samsung Galaxy S6 Android – FAB, чтобы скрыть при навигации между различными фрагментами в viewpager Как импортировать исходный код Android (AOSP) в студию Android? Пользовательский просмотр галереи в android Программный вход в систему из WebView Установите изображение в ImageView, сохраните пропорции и измените размер ImageView на размеры изображения? Время выполнения приложения Нарисовать закругленную краевую дугу в андроиде с рельефным эффектом Как читать HTTP-ответ через сокеты?

Неизвестная ошибка BaseGameUtils, onConnectionFailed: результат 4

Я уже тестировал пример ButtonClicker 2000, и он отлично работает. Теперь я пытаюсь внедрить службы Google Games в другую игру, но это дает некоторую ошибку:

06-06 12:30:46.353: D/BaseGameActivity(7982): isGooglePlayServicesAvailable returned 0 06-06 12:30:46.353: D/BaseGameActivity(7982): beginUserInitiatedSignIn: starting new sign-in flow. 06-06 12:30:46.416: D/BaseGameActivity(7982): Connecting GamesClient. 06-06 12:30:46.424: D/BaseGameActivity(7982): onStart. 06-06 12:30:46.424: D/BaseGameActivity(7982): onStart: connecting clients. 06-06 12:30:46.424: D/BaseGameActivity(7982): Connecting GamesClient. 06-06 12:30:46.424: E/GmsClient(7982): Calling connect() while still connected, missing disconnect(). 06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: result 4 06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: since user initiated sign-in, trying to resolve problem. 06-06 12:30:46.713: D/BaseGameActivity(7982): resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41692200: android.os.BinderProxy@416921a0}} 06-06 12:30:46.713: D/BaseGameActivity(7982): result has resolution. Starting it. 06-06 12:30:46.900: D/BaseGameActivity(7982): onActivityResult, req 9001 response 0 06-06 12:30:46.900: D/BaseGameActivity(7982): responseCode != RESULT_OK, so not reconnecting. 06-06 12:30:46.900: D/BaseGameActivity(7982): giveUp: giving up on connection. Status code: 4 06-06 12:30:46.900: D/BaseGameActivity(7982): Making error dialog for error: 4 

Com.google.android.gms регистрирует следующую ошибку:

 E/SignInActivity(7432): SignInActivity must be started with startActivityForResult 

Что я наделал:

  • Я правильно настроил консоль разработчика. SHA1 является правильным (соответствует хранилищу ключей androiddebug).
  • В API-консоли все выглядит нормально.
  • Я расширил GameBaseActivity и реализовал запрошенные интерфейсы.
  • У меня есть папка ids.xml в значениях, которая соответствует той, что находится в консоли разработчика.
  • Я переубедил запрошенные методы, включил onActivityResult ()
  • В манифесте также хорошо, он включает запрошенные метаданные.

  • Это код, который я использую для входа в onCreate:

     setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn(); 

При тестировании примера Button Clicker 2000 у меня также была Неизвестная ошибка и исправлена ​​правильная настройка панели. Текущая игровая панель также настроена правильно, поэтому я не знаю, что происходит. Что мне не хватает?

РЕДАКТИРОВАТЬ:

  • Я также попробовал развернуть BaseGameActivity и реализовать GameHelper прямо в моей основной деятельности.
  • Я попытался опубликовать настройки приложений для игр (потому что эта игра уже опубликована в Play Маркете). Связал другое приложение с моим изданием, подписывающим SHA1 ключ. Настроено как основное приложение для установки. Еще не повезло.

Solutions Collecting From Web of "Неизвестная ошибка BaseGameUtils, onConnectionFailed: результат 4"

Это действительно странно. Ошибка, которую вы получили, в зависимости от ваших журналов BaseGameActivity не должна произойти.

SignInActivity действительно не отображается в коде, так как вы начинаете его, вызывая GameHelper.resolveConnectionResult который вызывается mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE) . Это mConnectionResult , у которого есть намерение, которое запустит SignInActivity . И журналы BaseGameActivity говорят, что вы запускаете его правильно, поэтому, если вы не внесли некоторые изменения в BaseGameActivity и GameHelper, ошибка странная.

Где вы ищете ошибки? В вашем пакете фильтр? Действительно полезная информация отображается в LogCat, но не в вашем приложении. Найдите все сообщения без фильтра, в LogCat и найдите теги Volley и GameAgent. Это может показать вам некоторые ошибки.

Еще одно: показывает ли диалог SignIn? Когда отображается ошибка SignInActivity (временная метка)?

Ошибка очень ясна:

 E/SignInActivity(): SignInActivity must be started with startActivityForResult 

Это означает, что SignInActivity запускается с помощью startActivity вместо startActivityForResult .

Найдите, где начинается эта активность, и измените ее на startActivityForResult. Если бы вы разместили какой-то код, я был бы в состоянии помочь больше!

В соответствии с вашими ошибками вы дважды подключаете gamehelper (возможно, в вашем oncreate?), И он возвращает состояние ошибки 4. Вы не даете код, но я уверен, что знаю, в чем проблема. Возможно, вы можете испортить вход google с помощью GamesClient.connect. Подождите, пока учетная запись google не войдет в аккаунт, прежде чем подключать к игровому клиенту. я сделал

 public void onSignInSucceeded() { mGamesClient.connect();} 

Вы можете создать объект GamesClient в своем onCreate, но соединение лучше помещено в этот метод, который я вам дал. Я потратил часы с этой проблемой, надеюсь, что смогу помочь

Проблема:

ConnectionResult {statusCode = SIGN_IN_REQUIRED, разрешение = PendingIntent {#: android.os.BinderProxy@#}}

Решаются путем:

 @Override public void onConnectionFailed(ConnectionResult arg0) { <Your Code...> try { arg0.startResolutionForResult(this, 9001); } catch (SendIntentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

Это просто грубая демонстрация, обработайте ConnectionResult, как подскажите Google.

Для получения дополнительной информации Нажмите здесь