无法解析 GoogleSignIn 和 GoogleSignInClient

Posted

技术标签:

【中文标题】无法解析 GoogleSignIn 和 GoogleSignInClient【英文标题】:Cannot resolve GoogleSignIn and GoogleSignInClient 【发布时间】:2018-04-23 18:21:51 【问题描述】:

我无法使用 GoogleSignIn(com.google.android.gms.auth.api.signin.GoogleSignIn ) 和 GoogleSignInClient(com.google.android.gms.auth.api.signin.GoogleSignInClient ) 在 Android Studio 中实现 Google Sign In 同时我可以访问 App 中的其他类,例如

com.google.android.gms.auth.api.signin.GoogleSignInAccount;
com.google.android.gms.auth.api.signin.GoogleSignInOptions;
com.google.android.gms.common.SignInButton;

我的 build.gradle(app) 文件的精简版本如下

android 



dependencies 

    compile 'com.google.android.gms:play-services-auth:11.4.2'
    compile('com.google.api-client:google-api-client-android:1.23.0') 
        exclude group: 'org.apache.httpcomponents'
    
    compile('com.google.apis:google-api-services-gmail:v1-rev72-1.23.0') 
        exclude group: 'org.apache.httpcomponents'
    
    implementation 'com.google.gms:google-services:3.1.2'


apply plugin: 'com.google.gms.google-services'

而我的 build.gradle(package) 是

buildscript 

    dependencies 
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.google.gms:google-services:3.1.2'
    

任何帮助将不胜感激

【问题讨论】:

如果您遇到任何错误,请添加您的 logcat。 您的 SDK 管理器中是否安装了 Google Repository @Yupi 是的,我使用的是最新版本的 Google Repository。 【参考方案1】:

将此添加到您的应用级依赖项

compile 'com.google.android.gms:play-services-auth:12.0.1'

【讨论】:

为您的答案添加一些描述。 在此处找到所有依赖项列表。 developers.google.com/android/guides/setup 我今天得到了最新版本“16.0.0”【参考方案2】:

我遇到了同样的问题

GoogleSignInGoogleSignInClient 是在 Google Play 服务 SDK 版本 11.6 中引入的。在旧版本中使用的是 GoogleApiClient。

所以尝试将编译 'com.google.android.gms:play-services-auth:11.4.2' 更改为 'com.google.android.gms:play-services -auth:12.0.1' 在依赖项中

依赖关系 compile 'com.google.android.gms:play-services-auth:12.0.1'

【讨论】:

【参考方案3】:

对我来说,我在我的应用的 build.gradle 中为 google play 服务应用了一个插件:

apply plugin: 'com.google.gms.google-services'

在我的 Project's Build.gradle 中,我还有 google 服务。

buildscript 
    ext.kotlin_version = '1.1.60'
    repositories 
        google()
        jcenter()
    
    dependencies 
        classpath 'com.google.gms:google-services:3.1.2' // <== this guy
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    

我记得我添加了一些编译问题。但显然我不需要它们。

通过删除它们,我发现 gms 版本不再存在问题。

编辑

所以删除最初解决了我的问题,但后来在 google 登录时给了我问题。将 apply plugin: 'com.google.gms.google-services' 添加到我的项目 gradle 的底部而不是在顶部确实解决了它。

【讨论】:

将插件:'com.google.gms.google-services' 应用到我的项目 gradle 的底部而不是顶部解决它。 我也是,我有实现 'com.google.android.gms:play-services-auth:18.1.0' 所以我认为这不是版本问题。删除插件行完全修复了缺少的 GoogleSignIn 引用,但不起作用。将插件行单独添加到文件末尾似乎已经奏效。这似乎是插件中的一个错误(可能是命名空间错误)。【参考方案4】:

build.gradle 模块脚本中,我必须添加这两个依赖项,然后“立即同步”并为我解决问题。

dependencies   
    // Your own command lines
    //...

    compile 'com.google.android.gms:play-services-drive:11.8.0'
    compile 'com.google.android.gms:play-services-auth:11.8.0'

【讨论】:

【参考方案5】:

你不能使用任何更新的版本吗?例如11.6.0。 尝试更新您的 Google 存储库。 (Tools->Android->SDK Manager->Support Repository下的SDK Tools)

【讨论】:

+1。 11.6.0 是 GoogleSignIn / GoogleSignInClient 类所需的最低版本(旧版本的类名略有不同) 但是有一个问题,com.google.gms:google-services:3.1.2 包含在 11.4.2 版本中,它与 11.4.2 和 11.6.0 版本发生冲突,并且新版本在 google-services 上不可用。 @VaheGharibyan 我可以毫无问题地使用它们。您能具体说明问题所在吗? @VaheGharibyan 如果您收到以下消息“错误:任务 ':app:processDebugGoogleServices' 的执行失败。> 请通过更新 google-services 插件的版本来修复版本冲突(信息有关最新版本的信息,请访问bintray.com/android/android-tools/…)或将 com.google.android.gms 的版本更新到 11.4.2。”然后,您可以通过在 build.gradle(app) 文件末尾移动 apply plugin: 'com.google.gms.google-services' 来修复。 @pcforgeek 我强制使用 api 11.4.2,但问题是,api 11.4.2 不包含 GoogleSignIn / GoogleSignInClient 类。

以上是关于无法解析 GoogleSignIn 和 GoogleSignInClient的主要内容,如果未能解决你的问题,请参考以下文章

GoogleSignIn/Crashlytics/Firebase 的自定义编译器标志

如何在 GoogleSignIn signInSilently 中捕获错误?

Flutter Firebase GoogleSignIn 在发行版中不起作用

没有这样的模块 'GoogleSignIn' Xcode 9.3 和 Swift 4.1

如何从 Expo GoogleSignIn API (expo v32) 获取 idToken?

当我使用 googleSignIn 时,用户在 Firestore 上重复