2013-06-06 2 views
10

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

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: [email protected]}} 
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(); 
    

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

EDIT:

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

ответ

0

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

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

Это означает, что SignInActivity в настоящее время началось с startActivity вместо startActivityForResult.

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

+0

У меня есть только деятельность, которая не является SignInActivity. Фактически SignInActivity не отображается нигде даже в проекте GameBaseUtils. –

1

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

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

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

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

+0

GameHelper и BaseGameActivity не тронуты, конечно. Я не фильтрую журналы по имени пакета (отображается все сообщение). В любом случае не отображается сообщение Volley или GameAgent. Если это может помочь, я пытаюсь реализовать его в экспортированном проекте Shiva3D (который по-прежнему является проектом Android eclipse). –

+0

Сначала отображается диалоговое окно «вход в систему», затем диалог «Неизвестная ошибка». –

0

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

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

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

0

Проблема:

ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{#: [email protected]#}}

решена:

@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 Suggest.

для получения дополнительной информации Click Here

Смежные вопросы