GoogleSignIn 停止工作 - onActivityResult 中的 responseCode 为 0

GoogleSignIn stopped working - the responseCode in onActivityResult is 0

我的 GoogleSignin 代码无法正常工作,但没有发生以下错误:

直到昨天它都工作得很好,但是我在生成签名 APK 时遇到了一些问题,所以升级了我的 Android Studio (3.3.1),对 gradle 做了一点改动 -现在 GoogleSignin 不工作了。

折腾了一天,还是没能解决问题。我不太精通 Android 编程,希望得到任何帮助。

下面粘贴相关代码。如果需要更多信息,请告诉我。

谢谢。

P.S.: - startActivityForResult 中的 signInIntentonActivityResult 中的 intent 是不同的。可能这很好 - 想突出显示以防万一。

起点activity是:

private void signIn() {
    if(!isSignedIn()) {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN_ONLY_ID);
    }
}

结果activity是:

   @Override
    public void onActivityResult(int requestCode, int responseCode,
                                 Intent intent) {
        super.onActivityResult(requestCode, responseCode, intent);
        switch (requestCode) {
        case RC_SIGN_IN_ONLY_ID:
            Log.d(TAG, "onActivityResult with requestCode == RC_SIGN_IN_ONLY_ID, responseCode="
                    + responseCode + ", intent=" + intent);
            mSignInClicked = false;
            mResolvingConnectionFailure = false;
           Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(intent);
            handleSignInResult(task);
            break;

gradle:

    buildscript {
    repositories {
    }

    dependencies {
    }
}
apply plugin: 'com.android.application'
repositories {
//    mavenLocal()
 //   mavenCentral()
  //  google()        //---> Add this
    maven {
        url "https://maven.google.com"
    }
}

android {
    signingConfigs {
        debug {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('C:/Users/.../androidkey.jks')
            storePassword 'xxx'
        }
        config {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('C:/Users/.../androidkey.jks')
            storePassword 'xxx'
            v2SigningEnabled false
        }
    }
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.goSkill.earn"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 18
        versionName "1.0098"
        multiDexEnabled true
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            //debuggable true
            android.applicationVariants.all { variant ->
                variant.outputs.all {
                    outputFileName = "${variant.name}-${variant.versionName}.apk"
                }
            }
        }
        debug {
            signingConfig signingConfigs.debug
            minifyEnabled false
            debuggable true
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
    productFlavors {
    }
}

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    api 'com.google.android.gms:play-services:11.8.0'
    api 'com.android.support:design:27.0.0'
    api 'com.android.support:multidex:1.0.0'
}
//apply plugin: 'com.google.gms.google-services'

您是否为项目设置了 OAuth 客户端 ID?这需要您创建 OAuth 客户端 ID,并提供密钥库的 SHA-1。

Google 登录通常 returns 与 Activity.RESULT_CANCELLED 当你没有。

如果没有,请关注 this instruction