Java 在android应用程序中集成gmail登录的问题?

Java 在android应用程序中集成gmail登录的问题?,java,android,android-studio,Java,Android,Android Studio,我想做一个轻快型的应用程序。我已经在我的登录屏幕中集成了gmail登录,成功后它会变为仪表板活动,但当我单击帐户选项卡时,它会返回仪表板屏幕,而不是帐户活动。请帮忙 如果你想要代码的任何部分,只需注释,我会更新 //login screen part //check if already signed in using google account = GoogleSignIn.getLastSignedInAccount(this); if(account!=null)

我想做一个轻快型的应用程序。我已经在我的登录屏幕中集成了gmail登录,成功后它会变为仪表板活动,但当我单击帐户选项卡时,它会返回仪表板屏幕,而不是帐户活动。请帮忙

如果你想要代码的任何部分,只需注释,我会更新

//login screen part
//check if already signed in using google
account = GoogleSignIn.getLastSignedInAccount(this);

        if(account!=null) {
            finish();
            Intent intent = new Intent(this, DashboardActivity.class);
            startActivity(intent);
            return;
        }


//onclicklistener added
//method
private void googleSignin() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

onActivity result(//params provided){
if(googleLogin){
            // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
            if (requestCode == RC_SIGN_IN) {
                // The Task returned from this call is always completed, no need to attach
                // a listener.
                googleLogin = false;                      //set to false so that it can be set true again if login is actually successful
                Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
                handleSignInResult(task);
            }

        }
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {

        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);

            // Signed in successfully, show authenticated UI.
            sessionManager.setLogin(true);
            googleLogin = true;

            Intent intent = new Intent(this,DashboardActivity.class);
            intent.putExtra("googleLogin", googleLogin);
            startActivity(intent);
            finish();


        }

//Dashboard part
 Intent i = new Intent(DashboardActivity.this ,MyAccountActivity.class);
i.putExtra("googleLogin", googleLogin);
startActivity(i);


//myaccount part
 if(googleLogin){
            GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(this);
            if (acct != null) {
                String personName = acct.getDisplayName();
                //System.out.println(personName);          working fine
                account_name.setText(personName);

                String personEmail = acct.getEmail();
                //System.out.println(personEmail);         fine
                account_email.setText(personEmail);

                account_mobile.setText("+91 1234567890");

//                System.out.println(googleLogin);
//                System.out.println(fbLogin);
            }

        }
//登录屏幕部分
//检查是否已经使用google登录
account=GoogleSignIn.GetLastSignedAccount(此);
如果(帐户!=null){
完成();
意向意向=新意向(此,DashboardActivity.class);
星触觉(意向);
返回;
}
//onclicklistener添加了
//方法
私有void googleSignin(){
Intent-signinint=mGoogleSignInClient.getsigninint();
startActivityForResult(签名、注册);
}
onActivity结果(//提供了参数){
如果(谷歌登录){
//从GoogleSignInClient.GetSignInent(…)启动Intent返回的结果;
if(requestCode==RC\u登录){
//此调用返回的任务始终已完成,无需附加
//听众。
googleLogin=false;//设置为false,以便在登录成功时可以再次设置为true
Task Task=GoogleSignIn.GetSignedAccountFromIntent(数据);
handleSignInResult(任务);
}
}
}
私有void handleSignInResult(任务完成任务){
试一试{
GoogleSignInAccount account=completedTask.getResult(ApiException.class);
//成功登录,显示已验证的UI。
sessionManager.setLogin(true);
googleLogin=true;
意向意向=新意向(此,DashboardActivity.class);
intent.putExtra(“谷歌登录”,谷歌登录);
星触觉(意向);
完成();
}
//仪表板部件
意图i=新意图(DashboardActivity.this、MyAccountActivity.class);
i、 putExtra(“谷歌登录”,谷歌登录);
星触觉(i);
//我的帐户部分
如果(谷歌登录){
GoogleSignInAccount账户=GoogleSignIn.GetLastSignedAccount(此账户);
如果(帐户!=null){
字符串personName=acct.getDisplayName();
//System.out.println(personName);工作正常
账户名称.setText(人名);
字符串personEmail=acct.getEmail();
//System.out.println(personEmail);很好
账户_email.setText(personEmail);
账户_mobile.setText(“+911234567890”);
//System.out.println(谷歌登录);
//System.out.println(fbLogin);
}
}
解决了这个问题。 问题是,当我试图在我集成到应用程序中的帐户活动中显示帐户详细信息时,gmail无法提供使用的帐户详细信息,这就是它不断崩溃的原因。代码是正确的,这就是它没有给出任何错误的原因,我甚至尝试记录它。它显示了正确的详细信息,但仍然没有以文本形式显示结果意见。 所以我所做的就是使用共享首选项。每次用户使用gmail登录时,详细信息都存储在其中,我在我的帐户活动中检索到它,是的,它正确地显示了结果。
如果您需要更多帮助,请告诉我。

您必须在此处发布代码,因为这是我发现的逻辑错误。如果您需要帮助,您必须在出现此问题的位置共享代码块。这就是logcat中没有错误的地方。应用程序不会崩溃或发生任何事情。