gpt4 book ai didi

android - Google 登录总是在 GoogleSignInResult 上失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:01 25 4
gpt4 key购买 nike

我需要你的帮助......我不知道了!

我不明白为什么每次都失败。

  • 我生成了 ID 客户端 OAuth 2.0。
  • 我已生成 google-services.json 并将其移动到 ./app 文件夹中。
  • 通过 Google Cloud Console,激活所有 Google API。

检查一下,如果有什么东西伤害了你......继续!

亲切的问候

构建.gradle:

apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
applicationId "sign.in.gogoleplusconnect"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.google.android.gms:play-services-auth:9.0.0'
compile 'com.google.android.gms:play-services-identity:9.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:layout_centerHorizontal="true"
android:text="Gogole Sign In"
android:textSize="30sp"
android:textColor="#000000"/>

<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_margin="20dp"
android:layout_marginTop="20dp"/>
</RelativeLayout>

主 Activity .java

package sign.in.gogoleplusconnect;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
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.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;

public class MainActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener, View.OnClickListener
{
private static final int RC_SIGN_IN = 9001;

private GoogleSignInOptions gso;
private GoogleApiClient mGoogleApiClient;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Log.d("Logger", "onCreate:");

// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();

// Build a GoogleApiClient with access to the Google Sign-In API and the
// options specified by gso.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();

// Customize sign-in button. The sign-in button can be displayed in
// multiple sizes and color schemes. It can also be contextually
// rendered based on the requested scopes. For example. a red button may
// be displayed when Google+ scopes are requested, but a white button
// may be displayed when only basic profile is requested. Try adding the
// Scopes.PLUS_LOGIN scope to the GoogleSignInOptions to see the
// difference.
SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button);
signInButton.setSize(SignInButton.SIZE_STANDARD);
signInButton.setScopes(gso.getScopeArray());
signInButton.setOnClickListener(this);
}

@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.sign_in_button:
Log.d("Logger", "onClick:");
signIn();
break;
}
}

private void signIn()
{
Log.d("Logger", "signIn:");
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);

// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN)
{
Log.d("Logger", "onActivityResult:RC_SIGN_IN : " + RC_SIGN_IN);
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}

private void handleSignInResult(GoogleSignInResult result)
{
Log.d("Logger", "handleSignInResult:" + result.isSuccess());
if (result.isSuccess())
{
Log.d("Logger", "handleSignInResult : Success");
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();

Log.d("Logger", "" + acct.getDisplayName());
Log.d("Logger", "" + acct.getEmail());
Log.d("Logger", "" + acct.getPhotoUrl());
Log.d("Logger", "" + acct.getId());
}
else
{
// Signed out, show unauthenticated UI.
Log.d("Logger", "handleSignInResult : Fail");
}
}

@Override
public void onConnectionFailed(ConnectionResult connectionResult)
{
Log.d("Logger", "onConnectionFailed : Fail");
}
}

Logcat.log

07-15 16:06:27.817 21424-21424/sign.in.gogoleplusconnect D/Logger: onCreate:
07-15 16:06:30.053 21424-21424/sign.in.gogoleplusconnect D/Logger: onClick:
07-15 16:06:30.055 21424-21424/sign.in.gogoleplusconnect D/Logger: signIn:
07-15 16:06:32.872 21424-21424/sign.in.gogoleplusconnect D/Logger: onActivityResult:RC_SIGN_IN : 9001
07-15 16:06:32.879 21424-21424/sign.in.gogoleplusconnect D/Logger: handleSignInResult:false
07-15 16:06:32.879 21424-21424/sign.in.gogoleplusconnect D/Logger: handleSignInResult : Fail

最佳答案

对我来说,当应用程序使用不正确的证书签名时,证书 SHA-1 必须在 Google 控制台中注册。

对于调试构建变体,您可能还想将调试证书添加到 Google 控制台,或者为调试变体配置 build.gradle 以使用您在控制台中注册的相同证书。

关于android - Google 登录总是在 GoogleSignInResult 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38398933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com