2016-05-29 48 views
0

您好我有一个android项目,它从应用程序用户的Google健身档案中读取某些数据。我遇到了一个奇怪的场景如下。以下所有内容都处于调试模式,而不是释放模式。Google Fit O Auth失败,RESULT_CANCELED没有显示权限页面

1)从我自己的笔记本电脑编译oAuth成功地在我的手机上工作,工作流程正常工作。

2)当从另一个开发人员的机器编译相同的代码时,在选择要使用的帐户后,它不会显示我们需要授予Google fit权限的权限页面以及受保护的void onActivityResult(int requestCode,int resultCode,Intent data)方法被调用,结果代码为“RESULT_CANCELED”。尝试了多次,结果相同

3)我从我的笔记本电脑插入了相同的手机,并推送了相同的代码。这次它在手机中显示了许可页面,一旦批准,完整的流程就可以正常工作。

4)然后我们卸载了应用程序,并推送了从另一个dev的笔记本电脑编译的apk,现在OAuth工作正常,流程正常工作,因为该权限已经在应用程序的google配置文件上被授予。

这个问题似乎很奇怪,任何方向解决将不胜感激。

+1

基于此[线程](http://stackoverflow.com/questions/37289028/google-oauth-2-0-result-canceled-while-using-google-fit-api),您可以获得RESULT_CANCELED '如果你的包名不同于你在应用中定义的名称。检查你的'build.gradle'中是否没有设置另一个'AppID',它可能与清单中定义的包名不同。您也可以检查相关的[问题](http://stackoverflow.com/questions/28154332/android-google-fit-onconnectionfailed-sign-in-required)。 – abielita

+0

Thnx寻求帮助。在我们的例子中,它没有使用相同的密钥存储区进行调试构建,导致此问题。发布构建工作正常,一旦我们集成了公共密钥库并注册它与dev控制台问题得到解决。如果有人在将来需要帮助,请添加为答案。 –

回答

2

在我们的案例中,这个问题似乎是错误的keystores。对于调试,我们没有在每一个中使用通用密钥库,一旦我们使用了一个密钥库并在开发者控制台注册它,这个问题就解决了。