【问题标题】:Trouble enabling GoogleApiClient in AppCompatActivity在 AppCompatActivity 中启用 GoogleApiClient 时遇到问题
【发布时间】:2020-11-07 15:42:40
【问题描述】:

尝试按照 Google 的指南进行基本设置:

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

OnConnectionFailedListener 的第二个“this”失败

第二个参数类型错误。

找到:'... .HomeScreen',必需:'com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener' 少...

enableAutoManage (FragmentActivity, com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener) 在 Builder 中无法应用到(主屏幕、 ... .HomeScreen)

所以我通过将类扩展从 AppCompatActivity 更改为 FragmentActivity 来测试它,它工作正常。

我不确定如何手动实现一个监听器来满足,而且由于 AppCompatActivity 扩展了 FragmentActivity,我很困惑在这种情况下调试它发生了什么。

此外,该类具有 AppCompatActivity 依赖项,因此我不确定如何继续设置 API。

这是设置 FacebookSDK 的后续工作,我开始工作了,所以我有点希望他们有一个功能相似的“按钮”,并且它可能以类似的方式工作,但等效的 SDK 初始化似乎在这个阶段打嗝。

欢迎任何方向。

另外,为了澄清起见,我只需要能够通过 Google 进行身份验证,因为使用 API 标记这篇文章表明它是针对 Google Play 服务的,这超出了我所要求的范围,所以如果我可以砍掉这部分就好了。

【问题讨论】:

  • 阅读错误信息。 second 参数类型错误。单击带下划线的文本,按 Alt+Enter 并选择 Make HomeScreen 实现 OnConnectionFailedListener。
  • @EugenPechanec 这就是引用的文字,它就是全部。它不提供任何信息,唯一的问题是我没有使用 FragmentActivity,这是第一个链接中的代码。我将尝试将下一个会话的第二段代码实现为独立的活动,而不是集成它。
  • 您专注于错误的部分。 enableAutomanage 有两个参数。 1)HomeScreen扩展了AppCompatActivity,扩展了FragmentActivity,所以没有问题。 2) OnConnectionFailedListener。您的活动未实现此接口。您的 IDE 应该在第二个参数下划线作为错误。选择单词并执行我在第一条评论中提到的操作。
  • 它的父类实现了接口怎么不实现呢?

标签: android google-api-client


【解决方案1】:
mGoogleApiClient = new GoogleApiClient.Builder(this)
    .enableAutoManage(this ,(OnConnectionFailedListener) this )
    .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
    .build();

只需添加一个适合我的演员表

【讨论】:

  • 对不起,它失败了,在运行时它会引发一个异常:无法转换为 com.google.android.gms.common.api.GoogleApiClient$OnConnectionFailedListener
  • 类是否实现了googleapiclient?使用 AppCompatActivity,因此如果有人使用旧手机,该应用程序仍然可以工作。 FragmentActivity 是一个根活动,可以将片段插入其中。我相信在较新的版本中,任何活动都可以使用片段。听起来你的 build.gradle 可能存在版本冲突,为此 gradle 插件管理版本号 github.com/spring-gradle-plugins/dependency-management-plugin 奇怪,这将是一个运行时错误
【解决方案2】:

1.实现OnConnectionFailedListener

public class LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {

2.覆盖

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult){

}

3.你的错误消失了 :)

googleApiClient = new GoogleApiClient.Builder(this)
        .enableAutoManage(this ,  this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

【讨论】:

    猜你喜欢
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2012-09-30
    • 2018-07-19
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多