2016-11-22 5 views
0

Hallo Ich habe versucht, LeaderBoards in Android-App zu verwenden.App brauche Google Games Play, wenn installierte App abgestürzt ist

____________________________EDIT________________________________________________

Ok, jetzt habe ich versucht, folgen Sie diesem Link Guide

Ich erstelle neues Projekt für Test. Ich habe Code wie in Giude.

Wenn Sie Login Popup für Google Game Download angezeigt wurde ... OK, heruntergeladen.

ABER wenn ich App wieder öffnen app abgestürzt. Ich weiß nicht warum. (Ich starte App in Telefon Nein, Simulator)

Haben Sie einige Ideen? [Ich habe ein neues Projekt mit ONLY-Code von Guide. + BaseGameUtils]

public class MainActivity extends Activity implements 
     GoogleApiClient.ConnectionCallbacks, 
     GoogleApiClient.OnConnectionFailedListener, View.OnClickListener { 

    private static int RC_SIGN_IN = 9001; 

    private boolean mResolvingConnectionFailure = false; 
    private boolean mAutoStartSignInflow = true; 
    private boolean mSignInClicked = false; 
    private boolean mAutoStartSignInFlow=false; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try { 

      findViewById(R.id.sign_in_button).setOnClickListener(this); 
      findViewById(R.id.sign_out_button).setOnClickListener(this); 


      // Create the Google Api Client with access to the Play Games services 
      mGoogleApiClient = new GoogleApiClient.Builder(this) 
        .addConnectionCallbacks(this) 
        .addOnConnectionFailedListener(this) 
        .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
        // add other APIs and scopes here as needed 
        .build(); 

     }catch (Exception e) 
     { 
      Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); 
     } 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     // mGoogleApiClient.connect(); 

     if (!mInSignInFlow && !mExplicitSignOut) { 
      // auto sign in 
      mGoogleApiClient.connect(); 
     } 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     mGoogleApiClient.disconnect(); 
    } 


    @Override 
    public void onConnected(Bundle connectionHint) { 
     // The player is signed in. Hide the sign-in button and allow the 
     // player to proceed. 

     // show sign-out button, hide the sign-in button 
     findViewById(R.id.sign_in_button).setVisibility(View.GONE); 
     findViewById(R.id.sign_out_button).setVisibility(View.VISIBLE); 

     // (your code here: update UI, enable functionality that depends on sign in, etc) 

    } 


    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 
     if (mResolvingConnectionFailure) { 
      // already resolving 
      return; 
     } 

     // if the sign-in button was clicked or if auto sign-in is enabled, 
     // launch the sign-in flow 
     if (mSignInClicked || mAutoStartSignInFlow) { 
      mAutoStartSignInFlow = false; 
      mSignInClicked = false; 
      mResolvingConnectionFailure = true; 

      // Attempt to resolve the connection failure using BaseGameUtils. 
      // The R.string.signin_other_error value should reference a generic 
      // error string in your strings.xml file, such as "There was 
      // an issue with sign-in, please try again later." 
      if (!BaseGameUtils.resolveConnectionFailure(this, 
        mGoogleApiClient, connectionResult, 
        RC_SIGN_IN, String.valueOf(R.string.signin_other_error))) { 
       mResolvingConnectionFailure = false; 
      } 
     } 

     // Put code here to display the sign-in button 
    } 

    @Override 
    public void onConnectionSuspended(int i) { 
     // Attempt to reconnect 
     mGoogleApiClient.connect(); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, 
            Intent intent) { 
     if (requestCode == RC_SIGN_IN) { 
      mSignInClicked = false; 
      mResolvingConnectionFailure = false; 
      if (resultCode == RESULT_OK) { 
       mGoogleApiClient.connect(); 
      } else { 
       // Bring up an error dialog to alert the user that sign-in 
       // failed. The R.string.signin_failure should reference an error 
       // string in your strings.xml file that tells the user they 
       // could not be signed in, such as "Unable to sign in." 
       BaseGameUtils.showActivityResultError(this, 
         requestCode, resultCode, R.string.signin_failure); 
      } 
     } 
    } 


    // Call when the sign-in button is clicked 
    private void signInClicked() { 
     mSignInClicked = true; 
     mGoogleApiClient.connect(); 
    } 

    // Call when the sign-out button is clicked 
    private void signOutclicked() { 
     mSignInClicked = false; 
     Games.signOut(mGoogleApiClient); 
    } 




    @Override 
    public void onClick(View view) { 
     if (view.getId() == R.id.sign_in_button) { 
      // start the asynchronous sign in flow 
      mSignInClicked = true; 
      mGoogleApiClient.connect(); 
     } 
     else if (view.getId() == R.id.sign_out_button) { 
      // sign out. 
      mSignInClicked = false; 
      Games.signOut(mGoogleApiClient); 

      // show sign-in button, hide the sign-out button 
      findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE); 
      findViewById(R.id.sign_out_button).setVisibility(View.GONE); 
     } 

     if (view.getId() == R.id.sign_out_button) { 
      // user explicitly signed out, so turn off auto sign in 
      mExplicitSignOut = true; 
      if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { 
       Games.signOut(mGoogleApiClient); 
       mGoogleApiClient.disconnect(); 
      } 
     } 
    } 


    boolean mExplicitSignOut = false; 
    boolean mInSignInFlow = false; // set to true when you're in the middle of the 
    // sign in flow, to know you should not attempt 
    // to connect in onStart() 
    GoogleApiClient mGoogleApiClient; // initialized in onCreate 


} 
+0

Bestenlisten benötigen kein Google+ Anmelden. Was hat Ihnen diese Idee gegeben? Google Play Games hat seine eigene Anmeldung. – ianhanniballake

+0

so jetzt wie implementiert Leaderboard? Ich zhing also brauche ich google + und in führer haben google name und punkte .. Bitte geben mi rat. oder Beispielcode .. Danke. für Bestenlisten (was auch immer, ohne Google +) – trip03

+0

Haben Sie versucht, den [Anmeldebildschirm für Google Play-Spiele] (https://developers.google.com/games/services/training/signin) zu befolgen? – ianhanniballake

Antwort

0

ich meinen Fehler finden ..

war ich habe nicht diese

<meta-data android:name="com.google.android.gms.games.APP_ID" 
     android:value="@strings/app_id" /> 

in <application></application>

und es war ein Problem.

Verwandte Themen