首先,我想说我已经在谷歌播放登录和工作.但是,我一直在努力了解特定代码行的工作原理.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
Run Code Online (Sandbox Code Playgroud)
我想知道requestIdToken如何获得我真正的clientId.
调查时:default_web_client_id = 0x7f060035
当我记录R.string.default_web_client_id时,我得到:2131099701
当我记录getString(R.string.default_web_client_id)时,我得到: xxxxxxx-xxxxxxxxx0tfctc0fa0a.apps.googleusercontent.com(我的网络客户端ID)
此ID不在我的字符串或资源文件夹中.但是它在我的google-services.json文件中.
我的问题是getString或default_web_client_id如何解析为Json文件中的clientID?
提前感谢您的启蒙!
我的项目在过去的六个月里运行良好,并且在app商店中运行.对于更新,我重新打开项目,显示default_web_client未解析以下代码段
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
Run Code Online (Sandbox Code Playgroud)
我尝试以下方法,
1.清洁和重建
2.清除缓存并重新启动
3.设置getString(R.string.default_web_client_id)为空字符串并运行项目以生成
app/build/generated/res/google-services/{build_type}/values/values.xml
Run Code Online (Sandbox Code Playgroud)
文件作为此链接的指令
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)
Run Code Online (Sandbox Code Playgroud)