1

我正在尝试在应用中插入 Google 登录,但出现以下错误:

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.gf.globalflow/com.gf.globalflow.LoginTienda}:java.lang.ClassCastException:com.gf.globalflow.LoginTienda 无法转换为 com.google.android。 gms.common.api.GoogleApiClient$OnConnectionFailedListener 原因:java.lang.ClassCastException:com.gf.globalflow.LoginTienda 无法在 com.gf.globalflow 上转换为 com.google.android.gms.common.api.GoogleApiClient$OnConnectionFailedListener .LoginTienda.onCreate(LoginTienda.java:108)

我知道这个错误可以通过实现 OnConnectionFailedListener 方法来修复,但我这样做了,但错误没有得到修复。

编码:

glogin = (SignInButton) findViewById(R.id.btngoogle);

GoogleSignInOptions gSignInOptions = new 

GoogleSignInOptions.
Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).
requestEmail().
build();

final GoogleApiClient gApiClient = new GoogleApiClient //this is the line of the error
            .Builder(this)
            .enableAutoManage(this, 
            (GoogleApiClient.OnConnectionFailedListener) this)
            .addOnConnectionFailedListener(new 
            GoogleApiClient.OnConnectionFailedListener()
            {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult 
                connectionResult)
                {
                    Toast.makeText(getApplicationContext(),"La conexión al 
                    cliente api de Google ha fallado",
                    Toast.LENGTH_LONG).show();
                }
            })
            .addApi(Auth.GOOGLE_SIGN_IN_API,gSignInOptions)
            .build();

        glogin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                if(v.getId() == R.id.btngoogle)
                {
                    gSignIn();
                }
            }
        }
        );

public void gSignIn()
{
    Intent i = Auth.GoogleSignInApi.getSignInIntent(gApiClient);
    startActivityForResult(i,CODIGO_REQ);

}

public void HandleResult(GoogleSignInResult gSignInResult)
{
    if(gSignInResult.isSuccess())
    {
        GoogleSignInAccount gSignInAccount = 
        gSignInResult.getSignInAccount();
        gnombre = gSignInAccount.getDisplayName();
        gapellido = gSignInAccount.getFamilyName();
        gcorreo = gSignInAccount.getEmail();
        gfoto_url = gSignInAccount.getPhotoUrl().toString();
        Glide.with(this).load(gfoto_url).into(gfoto);
    }
    else
    {
        Toast.makeText(getApplicationContext(),"Usuario o contraseña 
        incorrecta",Toast.LENGTH_LONG).show();
    }
 }

怎么了?

谢谢

4

0 回答 0