无法解析符号default_web_client_id GoogleSignInOptions Android Firebase

问题描述 投票:3回答:4

我的项目在过去的六个月里运行良好,并且在app商店中运行。对于更新,我重新打开项目,显示default_web_client未解析以下代码段。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail()
                .build();

我尝试以下方法,

1.清洁和重建

2.清除缓存并重新启动

3.将getString(R.string.default_web_client_id)设置为空字符串并运行项目以生成

app/build/generated/res/google-services/{build_type}/values/values.xml

文件作为来自this链接的指令

4.用getString(R.string.default_web_client_id)替换空字符串

现在我能够运行项目并且还能够进行发布构建。但仍然无法解析符号default_web_client_id。

任何更新都会有所帮助......

注意:直接添加oauth_client->client_id会出错

W/GoogleActivity: Google sign in failed
    com.google.android.gms.common.api.ApiException: 12500: 
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source) 
android firebase firebase-authentication google-signin
4个回答
2
投票

我的代码也遇到了同样的问题

Cannot resolve symbol 'default_web_client_id'

我已尝试将clientID作为参数而不是R.string.default_web_client_id)

.requestIdToken(*My Client Id*)

并在调试代码中获取以下内容

W/System.err: com.google.android.gms.common.api.ApiException: 12500:

我已将Google服务更新为Project level build.gradle中的最新版本(google-serivces:4.2.0)

!对我有用的解决方案!

  1. 登录Developer Console
  2. 凭据>创建凭据> API密钥
  3. 从Firebase下载新的google-services.json(项目概述>用户和权限>常规向下滚动
  4. 将新的google-services.json加载到Project> app中
  5. 将客户端ID替换为从google-services.json oauth_client> client_id生成的新客户端ID注意:将客户端ID与client_type 3一起使用
.requestIdToken(*My New Client Id*)

6.运行你的应用程序:)


6
投票

我已将谷歌服务版本更新为项目级build.gradle中的最新版本并且工作正常

classpath 'com.google.gms:google-services:4.2.0

5
投票

我和你一样有同样的问题。更新Android工作室后,它收到错误。无需修复,因为Google会尝试让您的应用越来越安全。如果您尝试为default_web_client_id创建另一个值,它将显示错误dupplicate变量。要查找default_web_client_id的值*更改模式为Project - > app - > build - > generated - > google-services - > debug - > values - > values.xml。因此,这在编译时不会导致错误,您无需修复它。让谷歌稍后修复它:D


-1
投票

好的,首先让我告诉你为什么会这样,因为大多数时候开发人员都可以面对它。当您将Friebase Auth与google集成后,关闭项目后,default_web_client_id将会消失。

而最可悲的部分是你无法添加自己。

那么现在该怎么办:

解:

转到res - > values - >字符串

添加客户端ID(xxxxxx)

<string name="default_web_client_id" translatable="false">xxxxxxx</string>

你可以在这里找到如何添加

CLICK THIS LINK TO WATCH VIDEO FOR BETTER AND EASY SOLUTION

© www.soinside.com 2019 - 2024. All rights reserved.