Firebase集成Google登录时getSignInIntent无法解析及资源重复报错问题
问题1:编译错误Cannot resolve method 'getSignInIntent' in 'Object'
错误原因
你声明mGoogleSignInClient时用了通用Object类型,该类型没有getSignInIntent方法,而GoogleSignIn.getClient()返回的实际类型是GoogleSignInClient,类型不匹配导致编译报错。
修复方案
- 替换成员变量声明代码:
将
private Object mGoogleSignInClient;
修改为
private GoogleSignInClient mGoogleSignInClient;
- 导入对应依赖包(如果Android Studio没有自动导入的话,手动在代码顶部加):
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
问题2:运行时Duplicate resources错误
修复方案
按以下顺序排查修复:
- 先检查
res目录下是否存在重名资源:比如不同dpi的drawable目录下有同名图片、values目录下的strings/styles等文件有重复的key声明,删除重复的资源即可 - 如果是依赖冲突导致的重复资源,在模块级
build.gradle的android代码块中添加如下配置:
android { // 原有配置保持不变 configurations { all { exclude group: 'com.google.android.gms' } } packagingOptions { pickFirst '**/*' } }
- 确认项目级
build.gradle中的google-services插件版本、模块级build.gradle中的Firebase和Google Play服务依赖版本互相匹配,完成修改后执行Clean Project->Rebuild Project即可解决。
内容的提问来源于stack exchange,提问作者dvirb
相关产品推荐
相关产品推荐

