Hallo,
ich sitze jetzt schon sehr lange an diesem Porblem und bekomme es leider einfach nicht gelöscht. Ich bin am entwickeln eines kleinen Quiz-Spieles. Dies wurde komplett mit Android Studio erstellt und soll jetzt Errungenschaften und eine Highscore-Tabelle der besten Spieler integrieren. Auf Youtube finde ich wirklich gar nichts zu dem Thema, da gibts nur Tutorials wie man Play Games in Unity einbindet. Ich bin dieses Tutorial durchgegangen: https://developers.google.com/…rvices/android/quickstart. Da habe ich die Punkte "Achievements", Android -> "Get Started" & "Sign-in" abgearbeitet. Das Problem ist jedes Mal das gleiche. Immer "Other Error".
Der Code sieht folgend aus:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startscreen);
...
findViewById(R.id.highscoresButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startSignInIntent();
}
});
...
}
@Override
protected void onResume() {
super.onResume();
signInSilently();
}
private void signInSilently() {
signInOptions = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if (GoogleSignIn.hasPermissions(account, signInOptions.getScopeArray())) {
// Already signed in.
// The signed in account is stored in the 'account' variable.
GoogleSignInAccount signedInAccount = account;
} else {
// Haven't been signed-in before. Try the silent sign-in first.
GoogleSignInClient signInClient = GoogleSignIn.getClient(this, signInOptions);
signInClient
.silentSignIn()
.addOnCompleteListener(
this,
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
// The signed in account is stored in the task's result.
GoogleSignInAccount signedInAccount = task.getResult();
} else {
// Player will need to sign-in explicitly using via UI.
// See [sign-in best practices](http://developers.google.com/games/services/checklist) for guidance on how and when to implement Interactive Sign-in,
// and [Performing Interactive Sign-in](http://developers.google.com/games/services/android/signin#performing_interactive_sign-in) for details on how to implement
// Interactive Sign-in.
}
}
});
}
}
private void startSignInIntent() {
GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
Intent intent = signInClient.getSignInIntent();
startActivityForResult(intent, 9001);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9001) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// The signed in account is stored in the result.
GoogleSignInAccount signedInAccount = result.getSignInAccount();
} else {
String message = result.getStatus().getStatusMessage();
if (message == null || message.isEmpty()) {
message = "Other Error";
}
new AlertDialog.Builder(this).setMessage(message)
.setNeutralButton(android.R.string.ok, null).show();
}
}
}
Alles anzeigen
Die AndroidManifest.xml habe ich bereits wie vorgeschrieben editiert:
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="1234567891234" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
Jedes mal kommt der Fehlher "Other Error", wenn auf des Highscores Button klicke. Konkret gibt mit der result.getStatus() folgendes aus:
Status{statusCode=unknown status code: 12501, resolution=null}
Ich finde wirklich kein Tutorial zu dem Thema, weder Youtube noch Google. Hat jemand eine Idee bzw. ein ähnliches Problem mal gehabt?
Besten Dank!