Android Google登录出现ApiException "12500"
创始人
2024-08-14 00:00:19
0次

当使用Google登录时,遇到ApiException "12500"错误通常是由于以下原因之一引起的:

  1. 未正确配置SHA-1指纹:在Google开发者控制台中,您需要为您的应用程序配置正确的SHA-1指纹。确保您在开发期间使用的密钥存储与配置的SHA-1指纹相匹配。您可以使用以下代码获取您的应用程序的SHA-1指纹:
try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.example.packageName",
            PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

在上述代码中,将“com.example.packageName”替换为您的应用程序的包名。在运行代码后,您将在日志中看到SHA-1指纹。

  1. 未启用Google登录API:您需要在Google开发者控制台中启用Google登录API。确保您的项目设置中已启用Google登录API。

  2. 未提供正确的OAuth 2.0客户端ID:在Google开发者控制台中,您需要为您的应用程序创建OAuth 2.0客户端ID,并在应用程序中使用正确的客户端ID。确保您在调用Google登录API时使用了正确的客户端ID。

以下是使用Firebase身份验证的示例代码,用于处理ApiException "12500"错误:

import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.GoogleAuthProvider;

// 在Activity或Fragment中的方法中调用以下代码:
private static final int RC_SIGN_IN = 9001;
private FirebaseAuth mAuth;
private GoogleApiClient mGoogleApiClient;

private void signIn() {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
                    // 连接失败处理
                }
            })
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, RC_SIGN_IN);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {
            GoogleSignInAccount account = result.getSignInAccount();
            firebaseAuthWithGoogle(account);
        } else {
            Log.e(TAG, "Google Sign-In failed: " + result.getStatus());
        }
    }
}

private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
    AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener() {
                @Override
                public void onComplete(@NonNull Task task) {
                    if (task.isSuccessful()) {
                        FirebaseUser user = mAuth.getCurrentUser();
                        // 登录成功处理
                    } else {
                        Log.e(TAG, "Firebase authentication failed: ", task.getException());
                        // 登录失败处理
                    }
                }
            });
}

在上述代码中,R.string.default_web_client_id应替换为您的OAuth 2.0客户端ID。

希望这些解决方法能帮助您解决ApiException "12500"错误。如果问题仍然存在,请进一步检查配置并确保您的应用程序

相关内容

热门资讯

必备科技!和和抚远麻将辅助脚本... 必备科技!和和抚远麻将辅助脚本软件,和和抚远麻将真是是真的有辅助了解app1、和和抚远麻将透视辅助软...
一分钟了解!大齐山东麻将辅助脚... 一分钟了解!大齐山东麻将辅助脚本软件,大齐山东麻将果然是真的有辅助解迷神器1、大齐山东麻将公共底牌简...
科技新动态!乐乐开挂脚本软件,... 科技新动态!乐乐开挂脚本软件,乐乐一直是真的有开挂推荐脚本运乐乐辅助工具,进入游戏界面。进入乐乐辅助...
科普常识!六瓣数字消透视脚本软... 科普常识!六瓣数字消透视脚本软件,六瓣数字消一贯有透视解密插件1、六瓣数字消脚本辅助下载、六瓣数字消...
推荐几款新版!边锋老友延寿麻将... 推荐几款新版!边锋老友延寿麻将开挂脚本软件,边锋老友延寿麻将都是存在有开挂科普app边锋老友延寿麻将...
记者揭秘!涞水棋牌合集辅助脚本... 记者揭秘!涞水棋牌合集辅助脚本软件,涞水棋牌合集果然存在有辅助揭幕软件1、用户打开应用后不用登录就可...
2分钟细说!功夫川麻透视脚本软... 2分钟细说!功夫川麻透视脚本软件,功夫川麻一贯是有透视开挂软件1、功夫川麻破解器简单,功夫川麻机器人...
一分钟揭秘!微乐湖北麻将透视挂... 一分钟揭秘!微乐湖北麻将透视挂脚本软件,微乐湖北麻将一贯真的有透视挂详情软件1、该软件可以轻松地帮助...
总算明白!天天温岭麻将开挂脚本... 总算明白!天天温岭麻将开挂脚本软件,天天温岭麻将都是有开挂总结工具天天温岭麻将辅助器是一种具有地方特...
关于!无锡麻将辅助器脚本软件,... 关于!无锡麻将辅助器脚本软件,无锡麻将一直真的有辅助器揭露攻略进入游戏-大厅左侧-新手福利-激活码辅...