要解决Android中的Google登录持续失败问题,可以尝试以下方法:
确保正确设置了Google开发者控制台:
在AndroidManifest.xml文件中添加Google服务配置:
标签下添加以下元数据:
在build.gradle文件中添加必需的依赖项:
dependencies
部分添加以下依赖项:implementation 'com.google.android.gms:play-services-auth:19.2.0'
implementation 'com.google.android.gms:play-services-games:20.0.0'
在登录代码中使用正确的请求参数:
GoogleSignInOptions
配置登录选项,例如:GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
在onActivityResult
方法中处理登录结果:
onActivityResult
方法中添加以下代码:if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
handleSignInResult
方法来处理登录结果:private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
// 登录成功,执行接下来的操作
} else {
// 登录失败,显示错误消息
Log.e(TAG, "Google Sign-In failed: " + result.getStatus());
}
}
在ProGuard规则文件中添加必需的规则:
-keep class com.google.android.gms.auth.api.signin.** { *; }
-keep class com.google.android.gms.auth.api.signin.internal.** { *; }
-keep class com.google.android.gms.games.** { *; }
-keep class com.google.android.gms.games.internal.** { *; }
通过按照上述步骤检查和调整代码,您应该能够解决Android中的Google登录持续失败问题。