我一直在尝试添加此代码以在游戏结束后更新玩家的得分,当用户登录时,它可以按我希望的方式工作,但是如果用户未登录,则游戏会崩溃
void game_over() {
num_lifes = 0;
findViewById(R.id.hero).setEnabled(false);
findViewById(R.id.btn_play).setVisibility(View.GONE);
show_lifes();
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.submitScore(getString(R.string.leaderboard_id), score);
findViewById(R.id.game_over).setVisibility(View.VISIBLE);
答案 0 :(得分:0)
假设您的User实例中有一种功能或便捷方法可以检查您将要使用的登录名
void game_over() {
if (isSignedIn) {
num_lifes = 0;
findViewById(R.id.hero).setEnabled(false);
findViewById(R.id.btn_play).setVisibility(View.GONE);
show_lifes();
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.submitScore(getString(R.string.leaderboard_id), score);
findViewById(R.id.game_over).setVisibility(View.VISIBLE);
}
}
您的isSignedIn方法将如下所示
private boolean isSignedIn() {
return GoogleSignIn.getLastSignedInAccount(context) != null;
}