Я впервые работаю с API Google, так как я новичок в программировании для Android. Я пытался внедрить игровые сервисы Google Play и отображать списки лидеров в своем приложении (это игра, как вы могли догадаться), и у меня возникли некоторые трудности с документацией Google.
Я установил кнопку и хотел бы, чтобы пользователь входил в систему при ее нажатии и оставлял пользователя в системе до тех пор, пока он не выйдет из системы. Я запрограммировал это в соответствии с документацией:
public class MainActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
Button bLeaderboard;
private GoogleApiClient mGoogleApiClient;
private static int RC_SIGN_IN = 9001;
private boolean mResolvingConnectionFailure = false;
private boolean mAutoStartSignInflow = true;
private boolean mSignInClicked = false;
@Override
@SuppressLint("NewApi")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bLeaderboard = (Button) findViewById(R.id.bLeaderboard);
bLeaderboard.setOnClickListener(this);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bLeaderboard:
mSignInClicked = true;
mGoogleApiClient.connect();
}
}
Проблема в том, что всякий раз, когда я нажимаю на кнопку списка лидеров, приложение вылетает, и я получаю это сообщение об ошибке:
AndroidRuntime: НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.game, PID: 26284 java.lang.IllegalStateException: произошла фатальная ошибка разработчика. Проверьте журналы для получения дополнительной информации. на com.google.android.gms.common.internal.zzd$zza.zzc(неизвестный источник) на com.google.android.gms.common.internal.zzd$zza.zzv(неизвестный источник) на com.google.android .gms.common.internal.zzd$zze.zzasf(неизвестный источник) на com.google.android.gms.common.internal.zzd$zzd.handleMessage(неизвестный источник) на android.os.Handler.dispatchMessage(Handler.java :102) в android.os.Looper.loop(Looper.java:148) в android.app.ActivityThread.main(ActivityThread.java:5417) в java.lang.reflect.Method.invoke(собственный метод) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) в com.android.internal.os.ZygoteInit.main(ZygoteInit. ява: 616)
Я также не смог понять, что делать с этими тремя реализованными методами:
@Override
public void onConnected(@Nullable Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
Любая помощь очень ценится, так как я не смог найти никаких руководств по этому вопросу, кроме документации Google, которую, как я уже говорил ранее, мне трудно понять и следовать.