Échec d'ouverture de session. Veuillez vérifier votre connexion réseau et essayez à nouveau

Je suis en train de faire un jeu simple avec Google Play Games Services, mais je n'ai pas réussi à vous connecter à Google Play Jeux.

- Je obtenir ce erreur:

Pas réussi à se connecter. Veuillez vérifier votre connexion réseau et réessayez.

J'ai MainActivity, et trois fragmenets (MainFragment, GameFragment et ResultFragment).

MainFragment est fragment pour le menu principal, où l'utilisation ont un bouton à cliquer pour lancer le jeu.

Autorisation?

J'ai lié et a autorisé mon jeu avec l'algorithme SHA-1 dans Google Play Developer Console.

Que j'utilise Android Studio mon nom du package ressemble à quelque chose comme: aplikacijezaandroid.thebuttonchallenge, et j'ai ajouté deux version de l'application liées apps sur Google Play Developer Console.

J'ai donc com.aplikacijezaandroid.thebuttonchallenge, et aplikacijezaandorid.thebuttonchallenge

App ID?

J'ai ajouté l'id de l'application, et de classement des id dans strings.xml et j'ai ajouté la balise meta pour Android Manifest.

J'ai ajouté de l'Internet dans l'autorisation AndroidManifest.xml

Test?

Je test et de débogage application d'Android Studio avec dispositif physique et de l'ofc, il y a ma propre gmail ajouté comme test de l'utilisateur dans Google Play Developer Console.

Voici mon AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="aplikacijezaandroid.thebuttonchallenge" >

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
   <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"/>
  </application>

Ici est MainActivity classe:

 public class MainActivity extends Activity implements MainMenuFragment.Listener,   
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, 
GameFragment.Listener, ResultFragment.Listener {
//Fragments
MainMenuFragment mMainFragment;
GameFragment mGameFragment;
ResultFragment mResultFragment;
//Client used to interact with Google APIs
private GoogleApiClient mGoogleApiClient;
//Are we currently resolving a connection failure?
private boolean mResolvingConnectionFailure = false;
//Has the user clicked the sign-in button?
private boolean mSignInClicked = false;
//Automatically start the sign-in flow when the Activity starts
private boolean mAutoStartSignInFlow = true;
//request codes we use when invoking an external activity
private static final int RC_RESOLVE = 5000;
private static final int RC_UNUSED = 5001;
private static final int RC_SIGN_IN = 9001;
//Debug
private String TAG = "IGRA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Create the Google API Client with access to Plus and Games
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
//Fragments
mMainFragment = new MainMenuFragment();
mGameFragment = new GameFragment();
mResultFragment = new ResultFragment();
//listen to fragment events
mMainFragment.setListener(this);
mGameFragment.setListener(this);
mResultFragment.setListener(this);
//Treba dodati listenere
//add initial fragment (welcome fragment)
if (savedInstanceState == null) {
getFragmentManager().beginTransaction().add(R.id.container, mMainFragment).commit();
}
}
//Switch UI to the given fragment
void switchToFragment(Fragment newFrag) {
getFragmentManager().beginTransaction().replace(R.id.container, newFrag)
.commit();
}
private boolean isSignedIn() {
return (mGoogleApiClient != null && mGoogleApiClient.isConnected());
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart(): connecting");
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop(): disconnecting");
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}
@Override
public void onStartGameRequested() {
startGame();
}
@Override
public void onShowAchievementsRequested() {
}
@Override
public void onShowLeaderboardsRequested() {
}
void startGame(){
switchToFragment(mGameFragment);
}
public void onEnteredScore(int finalScore){
mResultFragment.setFinalScore(finalScore);
//push those accomplishments to the cloud, if signed in
pushAccomplishments(finalScore);
//switch to the exciting "you won" screen
switchToFragment(mResultFragment);
}
private void pushAccomplishments(int finalScore) {
if (!isSignedIn()) {
//can't push to the cloud, so save locally
//mOutbox.saveLocal(this);
Log.d(TAG, "can't push to the cloud, so save locally");
return;
}
Games.Leaderboards.submitScore(mGoogleApiClient,   getString(R.string.number_guesses_leaderboard),
finalScore);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//Handle action bar item clicks here. The action bar will
//automatically handle clicks on the Home/Up button, so long
//as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onConnected(Bundle bundle) {
Log.d(TAG, "onConnected(): connected to Google APIs");
//Show sign-out button on main menu
//mMainFragment.setShowSignInButton(false);
//Show "you are signed in" message on win screen, with no sign in button.
//mWinFragment.setShowSignInButton(false);
//Set the greeting appropriately on main menu
Player p = Games.Players.getCurrentPlayer(mGoogleApiClient);
String displayName;
if (p == null) {
Log.w(TAG, "mGamesClient.getCurrentPlayer() is NULL!");
displayName = "???";
} else {
displayName = p.getDisplayName();
}
mMainFragment.setGreeting("Hello, " + displayName);
//if we have accomplishments to push, push them
/*if (!mOutbox.isEmpty()) {
pushAccomplishments();
Toast.makeText(this, getString(R.string.your_progress_will_be_uploaded),
Toast.LENGTH_LONG).show();
}*/
}
@Override
public void onWinScreenDismissed() {
switchToFragment(mMainFragment);
}
@Override
public void onWinScreenSignInClicked() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == RC_SIGN_IN) {
mSignInClicked = false;
mResolvingConnectionFailure = false;
if (resultCode == RESULT_OK) {
mGoogleApiClient.connect();
} else {
BaseGameUtils.showActivityResultError(this, requestCode, resultCode,
R.string.signin_failure, R.string.signin_other_error);
}
}
}
@Override
public void onConnectionSuspended(int i) {
Log.d(TAG, "onConnectionSuspended(): attempting to connect");
mGoogleApiClient.connect();
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.d(TAG, "onConnectionFailed(): attempting to resolve");
if (mResolvingConnectionFailure) {
Log.d(TAG, "onConnectionFailed(): already resolving");
return;
}
if (mSignInClicked || mAutoStartSignInFlow) {
mAutoStartSignInFlow = false;
mSignInClicked = false;
mResolvingConnectionFailure = true;
if (!BaseGameUtils.resolveConnectionFailure(this, mGoogleApiClient, connectionResult,
RC_SIGN_IN, getString(R.string.signin_other_error))) {
mResolvingConnectionFailure = false;
}
}
//Sign-in failed, so show sign-in button on main menu
mMainFragment.setGreeting(getString(R.string.signed_out_greeting));
//mMainMenuFragment.setShowSignInButton(true);
//mWinFragment.setShowSignInButton(true);
}
Est votre jeu publié, en version alpha ou beta?
Je n'ai pas publié mon jeu, et même je n'ai pas de télécharger l'apk de Google Play Developer Console. J'ai juste ajouté de nouveaux jeu à des Services et l'état est prêt à être testé.

OriginalL'auteur Zookey | 2014-11-07