GoogleSignIn 停止工作 - onActivityResult 中的 responseCode 为 0
GoogleSignIn stopped working - the responseCode in onActivityResult is 0
我的 GoogleSignin 代码无法正常工作,但没有发生以下错误:
- 正在编译代码。
- 此外,当我点击登录时,会弹出一个窗口,询问我要使用哪个 google 帐户登录。
onActivityResult
中的responseCode
是0
。
直到昨天它都工作得很好,但是我在生成签名 APK 时遇到了一些问题,所以升级了我的 Android Studio (3.3.1),对 gradle 做了一点改动 -现在 GoogleSignin 不工作了。
折腾了一天,还是没能解决问题。我不太精通 Android 编程,希望得到任何帮助。
下面粘贴相关代码。如果需要更多信息,请告诉我。
谢谢。
P.S.:
- startActivityForResult
中的 signInIntent
和 onActivityResult
中的 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。
我的 GoogleSignin 代码无法正常工作,但没有发生以下错误:
- 正在编译代码。
- 此外,当我点击登录时,会弹出一个窗口,询问我要使用哪个 google 帐户登录。
onActivityResult
中的responseCode
是0
。
直到昨天它都工作得很好,但是我在生成签名 APK 时遇到了一些问题,所以升级了我的 Android Studio (3.3.1),对 gradle 做了一点改动 -现在 GoogleSignin 不工作了。
折腾了一天,还是没能解决问题。我不太精通 Android 编程,希望得到任何帮助。
下面粘贴相关代码。如果需要更多信息,请告诉我。
谢谢。
P.S.:
- startActivityForResult
中的 signInIntent
和 onActivityResult
中的 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。