【问题标题】:Cannot instantiate GoogleApiClient无法实例化 GoogleApiClient
【发布时间】:2016-11-22 02:40:39
【问题描述】:

这是我尝试实例化它的代码:

gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(PSSignInFlowActivity.this)
            .enableAutoManage(this/* FragmentActivity */, new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

                }
            } /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();

这就是我的 build.gradle 中的内容:

 compile 'com.google.android.gms:play-services-maps:+'
compile 'com.google.android.gms:play-services-location:+'
compile 'com.google.android.gms:play-services-gcm:+'
compile 'com.google.android.gms:play-services-analytics:+'
compile 'com.google.android.gms:play-services-auth:9.0.2'

我收到此错误:

07-19 11:23:47.668: E/AndroidRuntime(2275): FATAL EXCEPTION: main
07-19 11:23:47.668: E/AndroidRuntime(2275): Process: nl.hgrams.passenger, PID: 2275
07-19 11:23:47.668: E/AndroidRuntime(2275): java.lang.NoSuchMethodError: No virtual method zztw()Ljava/util/Set; in class Lcom/google/android/gms/common/internal/zzg; or its super classes (declaration of 'com.google.android.gms.common.internal.zzg' appears in /data/app/nl.hgrams.passenger-1/base.apk)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.auth.api.signin.internal.zzd.<init>(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.auth.api.Auth$4.zza(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.auth.api.Auth$4.zza(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.common.api.GoogleApiClient$Builder.zza(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.common.api.GoogleApiClient$Builder.zzaof(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.google.android.gms.common.api.GoogleApiClient$Builder.build(Unknown Source)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at nl.hgrams.passenger.activities.PSSignInFlowActivity.onCreate(PSSignInFlowActivity.java:75)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.Activity.performCreate(Activity.java:6251)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.ActivityThread.-wrap11(ActivityThread.java)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.os.Looper.loop(Looper.java:148)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at android.app.ActivityThread.main(ActivityThread.java:5417)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at java.lang.reflect.Method.invoke(Native Method)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
07-19 11:23:47.668: E/AndroidRuntime(2275):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

【问题讨论】:

  • 你为什么不用'com.google.android.gms:play-services-auth:9.2.0'?

标签: android google-oauth google-signin google-authentication googlesigninapi


【解决方案1】:

见类似issue,

将'com.google.android.gms:play-services-auth:9.0.2' 更改为

'com.google.android.gms:play-services-auth:9.2.0'

会正常工作。

【讨论】:

  • 我现在收到这样的错误作为响应:Status{statusCode=DEVELOPER_ERROR, resolution=null} 为什么我会收到 Developer_error 回复?
  • 请参考this以获得清晰和简短的解释。
  • 我在这里输入:developers.google.com/mobile/… 它在我的控制台开发人员中创建了一个新的 AndroidKey,它不应该使用我的密钥吗?现在我有了这个:Android 密钥(由 Google 服务自动创建)2016 年 7 月 19 日这个:Android 密钥 1 2014 年 6 月 11 日
  • 或者如何从我的旧 androidkey 中获取配置文件?
  • 是否需要生成新密钥?坦率地说,由于.NET项目和对firebase和其他人有点不熟悉,我已经好几个月没有专注于android了。我真的很抱歉兄弟。用新密钥使用旧配置似乎很困难,但也许是可能的...您可能比我更了解这一点.. 希望您能理解 :)
【解决方案2】:

添加了 compile 'com.google.android.gms:play-services-auth:+' 而不是 9.0.2

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2016-06-09
    • 2020-10-26
    • 2016-02-29
    • 2017-01-29
    • 2020-08-30
    • 2011-02-28
    • 2021-11-26
    • 2012-11-23
    相关资源
    最近更新 更多