É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);
}
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
Vous devez vous connecter pour publier un commentaire.
J'ai résolu ce problème, donc je vais poster la réponse.
J'ai déplacé app id et le classement de l'id de strings.xml pour ids.xml dans les valeurs de dossier.
J'ai supprimé tous les id client et ajouter de nouveau client id de débogage du fichier de clés et la libération de magasin de clés.
OriginalL'auteur Zookey
Si vous n'avez pas publié votre application/jeu: une fois que vous avez fait à chaque étape habituelle, assurez-vous de tester votre application/jeu avec un appareil n'a que le compte de test/s. J'ai vérifié à chaque étape une à quelques reprises et a fini avec ce problème bizarre. Enfin, j'ai testé mon application avec un appareil a seulement compte de test, j'ai ajouté sur le Développeur de la Console. Il a travaillé. L'espoir, cela aide quelqu'un d'autre.
OriginalL'auteur AnEnthusiast
Dans mon cas, le problème a été l'un des comptes gmail (sur deux) n'a pas été ajoutée pour les testeurs ont des comptes à la play store et est le compte par défaut pour mon appareil.
J'ai supprimé le compte pour faire de l'autre compte (testeurs compte au playstore) par défaut et de l'ajouter de nouveau de retour, et il a commencé à travailler
OriginalL'auteur Mohammad Khan
Dans mon cas.J'ai placé un compte de test,mais mon appareil a un compte par défaut qui est l'autre,c'est pourquoi j'ai eu cette erreur.Mon erreur, mais Pourquoi ne peut-google nous donne un plus évident de rapport d'erreur?
Voici comment j'ai travaillé.Tous mes test a été en vertu de la version de débogage à l'aide du compte de test.
- Je supprimer le projet, à la fois dans le google play develper de la console et de l'Api google console.Et de recréer un comme mentionné par d'autres sur stackoverflow.Mais cela ne l'aide pas.Je la refais ce et se termine dans girouette.
Je cheked trouvé dans le journal de ces mêmes mots:
03-09 16:15:39.897: E/GameAgent(1225): Impossible de récupérer l'application xxxxxxx à partir du réseau
03-09 16:15:39.902: E/GameAgent(1225): ID de l'Application xxxxxxx n'est pas associé avec le package com.gyj.pub.gpgsDemo. Vérifiez l'ID de l'application dans votre manifeste.
03-09 16:15:39.906: E/CheckGameplayAcl(23917): Impossible de charger les métadonnées pour le jeu
03-09 16:15:39.906: W/SignInActivity(23917): onSignInFailed()...
un de plus,j'ai vérifié tous les 3 éléments ci-dessous ,déterminez si le client apk est conforme avec Google Play Deverloper de la Console de configuration.
1.nom du paquet .Il est tout de même.
2.Certification empreinte SHA1.(debug et release).
3.Compte de test.
Même à l'époque je ne savais pas que je n'ai pas d'entrée d'un compte au cours de mes tests,Comment le dispositif de savoir ce qui compte est d'assister à la signer?
J'ai essayé un autre compte.J'ai ajouté ce compte qui a placé dans sonsole comme Compte de Test de l'appareil,relaughched la TypeANumber app.Il m'a montré un affichage à choisir l'un des deux comptes.Soudain je l'ai eu.
OriginalL'auteur Yongjiang Geng
Dans mon cas,j'ai seulement ajouter un client de libération de l'ID dans Google Play de la Console. Quand je lance mon application, cliquez sur le bouton EXÉCUTER en tant QUE,le réseau erreur de connexion spectacle.Mais quand je lance le apk générés par la signature,il fonctionne bien. Donc, ajouter un client de débogage id si vous voulez exécuter votre application à l'intérieur COMME.
OriginalL'auteur user8355469
Pour moi, c'est que mon projet SHA1 n'est pas la même chose que ce qui est dans l'API console.
1. J'ai vérifié le mien par cette.
2. Est allé à https://console.developers.google.com et dans les "informations d'Identification" de la page de mon projet.
3. Cliqué sur le bouton modifier (l'icône en forme de crayon) et collé sur le SHA1
4. A travaillé au sein de <2 minutes
OriginalL'auteur Chee Jit Lim