我的项目在过去的六个月里运行良好,应用程序在Play商店中。对于更新,我重新打开项目,显示以下代码的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)
型
9条答案
按热度按时间huus2vyu1#
我和你有同样的问题。更新Android Studio后,出现错误。没有必要修复,因为谷歌试图使您的应用程序越来越安全。如果你尝试为default_web_client_id创建另一个值,它将显示错误重复变量。要查找default_web_client_id * 的值,请将模式更改为Project -> app -> build -> generated -> google-services -> debug -> values -> values. xml。因此,这不会导致编译时错误,您不需要修复它。让wating google稍后修复它:D
q3aa05252#
我已经更新了谷歌服务版本到最新的项目级build.gradle和工作正常
字符串
pkmbmrz73#
我的代码也有同样的问题
字符串
我尝试将clientID作为参数,而不是R.string.default_web_client_id)
型
并在调试代码中获得以下内容
型
我已经将Google服务更新到最新的Project level build.gradle(google-services:4.2.0)
!为我工作的解决方案!
1.登录Developer Console
1.凭据>创建凭据>API密钥
1.从Firebase下载新的google-services.json(项目概述>用户和权限>常规 * 向下滚动 *
1.将新的google-services.json加载到Project>app
1.将客户端ID替换为从google-services.json oauth_client>client_id生成的新ID * 注意:使用client_type 3* 的客户端id
型
6.运行您的应用程序:)
rm5edbpk4#
回到Google Services的上一个classpath版本:在我的例子中,我不得不在build.gradle面板中将classpath 'com. google. gms:google-services:4.3.10'更改为classpath 'com.google.gms:google-services:4.3.8'。有时谷歌服务更新不能正常工作,这是一个很好的开发者头痛。
shyt4zoc5#
这对我很有效:
1.转到Google API Console并选择所需的项目
1.查看OAuth 2.0客户端ID。如果您还没有web客户端API创建一个,请键入Web客户端,您必须创建一个。x1c 0d1x的数据
1.转到Firebase控制台,项目设置并下载google-service.json文件
1.替换项目中的google-service文件。
web_default_client是从oauth_client元素中的type 3键生成的。下面是
com.google.gms:google-services:4.3.2
的json文件:字符串
如果数组中没有client_type 3节点,则添加它。
一个更简单的方法是直接传递令牌id,如下所示:
型
备注:
5tmbdcev6#
在做任何事情之前,我从Firebase> Project Settings下载了最新的google-services.json文件,并将其替换为project文件夹中的文件。重建这个项目就没了。
t0ybt7op7#
我只打开了res(generated)> values > values.xml,没有更多,错误结束了。
xxxxxxxx.apps.googleusercontent.com
b1uwtaje8#
这些解决方案都不适合我
我试着把插件放在build.gradle和其他解决方案的底部。
对我来说有效的是以编程方式访问
default_web_client_id
字符串。在Kotlin中,我创建了一个扩展来获取资源字符串
字符串
然后
型
对我来说就像魅力一样
vbopmzt19#
通过按下同步项目
Sync Project with Gradle Files (Button)