Сбой входа в систему Google с ошибкой 12500, а также странным журналом прямо перед ним - PullRequest
0 голосов
/ 30 ноября 2018

Моя текущая реализация входа в Google выглядит следующим образом:

private fun googleLogin() {
    LoginManager.googleSignOut(this)

    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.server_client_id))
            .requestEmail()
            .build()

    val signInClient = GoogleSignIn.getClient(this, gso)
    val signInIntent = signInClient.signInIntent
    startActivityForResult(signInIntent, LoginManager.Account.GOOGLE.code)
}

При этом получатель результатов выглядит следующим образом:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    Trace.i(resultCode)

    when (requestCode) {

        LoginManager.Account.GOOGLE.code -> {
            val task = GoogleSignIn.getSignedInAccountFromIntent(data)
            handleGoogleResult(task)
        }
    }
}

private fun handleGoogleResult(completedTask: Task<GoogleSignInAccount>) {
    try {
        val account = completedTask.getResult(ApiException::class.java)
        preLogin(LoginManager.Account.GOOGLE, account?.idToken)
    } catch (e: ApiException) {
        if (e.statusCode != GoogleSignInStatusCodes.SIGN_IN_CANCELLED) {
            tryTo(LogType.E, true) {
                LoginManager.setLoginResult(this, LoginManager.LogStatus.FAILED, "Failed to Login")
                finish()
            }
        }

        Trace.e(e)
        Crashlytics.logException(e)
    }
}

private fun handleGoogleResult(completedTask: Task<GoogleSignInAccount>) {
    try {
        val account = completedTask.getResult(ApiException::class.java)
        preLogin(LoginManager.Account.GOOGLE, account?.idToken)
    } catch (e: ApiException) {
        if (e.statusCode != GoogleSignInStatusCodes.SIGN_IN_CANCELLED) {
            tryTo(LogType.E, true) {
                LoginManager.setLoginResult(this, LoginManager.LogStatus.FAILED, "Failed to Login")
                finish()
            }
        }

        //Log.i("e_status_code", e.);
        e.printStackTrace()

        Trace.e(e)
        Crashlytics.logException(e)
    }
}

Проблема в том, что он возвращает ошибку 12500со следующим журналом прямо перед исключением:

===== INTEGER =====
value : 0
NTZ_TABLE : [B@3bdafa63
SMALL_VALUES : [Ljava.lang.Integer;@13f25719
TYPE : int
MAX_VALUE : 2147483647
MIN_VALUE : -2147483648
SIZE : 32
===== end =====

Что это значит?

Смежный вопрос: из других ошибок, связанных с ошибкой 12500, я могу предположить, что это в основном проблема SHA1 в Keystore.или устаревшая проблема служб Google Play.Что еще может вызвать эту ошибку?

1 Ответ

0 голосов
/ 30 ноября 2018

Пробовали ли вы обновить сервисы Google Play?Если вы создали версию выпуска, вам также понадобится SHA-1 выпуска и обновление на консоли разработчика.

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