Как подключить приложение Android к сервисам google play games? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть приложение Android, и я хочу подключиться к сервису Google Play Games.

Мой код:

class WelcomeActivity : AppCompatActivity() {

private var btnPlay: Button? = null
private var btnRanking: Button? = null
private var btnHowToPlay: Button? = null

private var googleSignInClient: GoogleSignInClient? = null
private var achievementsClient: AchievementsClient? = null
private var leaderboardsClient: LeaderboardsClient? = null


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_welcome)

    btnPlay = findViewById(R.id.btnPlay)
    btnRanking = findViewById(R.id.btnRanking)
    btnHowToPlay = findViewById(R.id.btnHowToPlay)

    btnPlay?.setOnClickListener{
        startActivity(Intent(this, MainActivity::class.java))
    }

    btnRanking?.setOnClickListener{
        showTopPlayers(it)
    }

    btnHowToPlay?.setOnClickListener{
        startActivity(Intent(this, HowToPlayActivity::class.java))
    }

    initGoogleClientAndSignin()
}

fun initGoogleClientAndSignin() {
    googleSignInClient = GoogleSignIn.getClient(this, GoogleSignInOptions.Builder(
        GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build())

    googleSignInClient?.silentSignIn()?.addOnCompleteListener { task ->
        if (task.isSuccessful) {
            achievementsClient = Games.getAchievementsClient(this, task.result!!)
            leaderboardsClient = Games.getLeaderboardsClient(this, task.result!!)
        } else {
            Log.e("Error", "signInError", task.exception)
        }
    }
}

fun showTopPlayers(view: View) {
    leaderboardsClient?.allLeaderboardsIntent?.addOnSuccessListener {intent ->
        startActivityForResult(intent, 0)
    }
}
}

И у меня следующая ошибка при инициализации приложения :

E/Error: signInError
com.google.android.gms.common.api.ApiException: 8: 8: 
    at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@17.1.0:4)
    at com.google.android.gms.common.internal.zai.zaf(com.google.android.gms:play-services-base@@17.1.0:2)
    at com.google.android.gms.common.internal.zak.onComplete(com.google.android.gms:play-services-base@@17.1.0:6)
    at com.google.android.gms.common.api.internal.BasePendingResult.zaa(com.google.android.gms:play-services-base@@17.1.0:176)
    at com.google.android.gms.common.api.internal.BasePendingResult.setResult(com.google.android.gms:play-services-base@@17.1.0:135)
    at com.google.android.gms.auth.api.signin.internal.zzi.zzc(com.google.android.gms:play-services-auth@@18.0.0:5)
    at com.google.android.gms.auth.api.signin.internal.zzs.dispatchTransaction(com.google.android.gms:play-services-auth@@18.0.0:6)
    at com.google.android.gms.internal.auth-api.zzc.onTransact(com.google.android.gms:play-services-auth@@18.0.0:13)
    at android.os.Binder.execTransact(Binder.java:674)

Мой идентификатор приложения находится в AndroidManifest. xml и версия сервисов Google Play.

<application>
<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" />

SHA-1 хорош, потому что Google синхронизирует c автоматически, когда Я подключаю игру к приложению в консоли разработчика Play, я не знаю, как это решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...