2017-04-12 47 views
0

由于某些原因,登录Google的某些原因除了我用于调试的日常驱动程序之外,并不适用于所有设备。我甚至尝试在我的平板电脑上安装调试版本,但不起作用。Android上的Google登录在除主调试设备之外的所有设备上都失败

下面的代码:

onCreate(){ 

    ... 
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken("~webID~.apps.googleusercontent.com") 
      .requestEmail() 
      .build(); 

    googleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 
} 

@OnClick(R.id.google_signin_button) 
public void signInWithGoogle(){ 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient); 
    startActivityForResult(signInIntent, RC_SIGN_IN); 
} 

在不工作的设备,当这个被调用onActivityResult永远不会被调用。相反,设备返回桌面并退出应用程序。我不确定发生了什么事。任何帮助?

+0

'logcat'说什么?您是否在这些设备上安装Google Play服务? – ephemient

+0

我其实只是想出了这个问题。我会把它作为答案发布。 –

回答

1

我的问题是在清单中标记为noHistory的任务。为什么这是一个问题或为什么它影响不同的设备不同我不知道。无论哪种方式,删除解决了这个问题。

+0

有一定意义:如果您开始另一项活动,它将无法返回到noHistory活动,因为它不再存在。这并不能解释为什么它在你的一个*设备上工作,但是......: - ? – ephemient

+0

@ephemient我认为发生了什么事情是在新设备上登录是通过弹出窗口来实现的,而旧设备认为登录是一项单独的活动。 –