Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法通过GoogleAuthUtil.getToken()进行身份验证_Android_Google Oauth_Google Authentication - Fatal编程技术网

Android 无法通过GoogleAuthUtil.getToken()进行身份验证

Android 无法通过GoogleAuthUtil.getToken()进行身份验证,android,google-oauth,google-authentication,Android,Google Oauth,Google Authentication,应用程序应该在第一次启动时对用户进行身份验证(如果第一次尝试失败,则在以后的启动时)。身份验证逻辑封装在AsyncTask中,并通过以下方法实现(用户帐户和作用域有效): handleException方法: public void handleException(final Exception e) { runOnUiThread(new Runnable() { @Override public void run() { if

应用程序应该在第一次启动时对用户进行身份验证(如果第一次尝试失败,则在以后的启动时)。身份验证逻辑封装在
AsyncTask
中,并通过以下方法实现(用户帐户和作用域有效):

handleException
方法:

public void handleException(final Exception e) {
    runOnUiThread(new Runnable() {

        @Override
        public void run() {
            if (e instanceof GooglePlayServicesAvailabilityException) {
                int statusCode = ((GooglePlayServicesAvailabilityException) e).getConnectionStatusCode();
                Dialog dialog = GooglePlayServicesUtil.getErrorDialog(statusCode, MainActivity.this,
                        REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR);
                dialog.show();
            } else if (e instanceof UserRecoverableAuthException) {
                Intent intent = ((UserRecoverableAuthException) e).getIntent();
                startActivityForResult(intent, REQUEST_CODE_RECOVER_FROM_AUTH_ERROR);
            } else if (e instanceof GoogleAuthException) {
                showToast("Fatal error during authentication");
            }
        }
    });
}
在不同的设备上测试该代码表明,没有严格的模式来检测错误的原因。病征包括:

  • 多个登录活动相互重叠,但没有一个成功:
  • 即使我设置了
    secondTry
    标志来阻止它,也会抛出多个
    UserRecoverableAuthException
    s
此外,在LogCat中发现了以下异常:

11-10 13:50:30.610: D/GLSActivity(4223): Starting LoginActivityTask for user: qwerty@gmail.com...
11-10 13:50:30.615: E/Parcel(2345): Class not found when unmarshalling: com.google.android.gms.auth.firstparty.shared.LatencyTracker
11-10 13:50:30.615: E/Parcel(2345): java.lang.ClassNotFoundException: com.google.android.gms.auth.firstparty.shared.LatencyTracker
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.classForName(Native Method)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.forName(Class.java:204)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.forName(Class.java:169)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readParcelableCreator(Parcel.java:2091)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readParcelable(Parcel.java:2055)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readValue(Parcel.java:1971)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readMapInternal(Parcel.java:2255)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Bundle.unparcel(Bundle.java:223)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Bundle.getString(Bundle.java:1082)
11-10 13:50:30.615: E/Parcel(2345):     at android.content.Intent.getStringExtra(Intent.java:4961)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:3173)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:3129)
11-10 13:50:30.615: E/Parcel(2345):     at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:157)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Binder.execTransact(Binder.java:388)
11-10 13:50:30.615: E/Parcel(2345):     at dalvik.system.NativeStart.run(Native Method)
11-10 13:50:30.615: E/Parcel(2345): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/auth/firstparty/shared/LatencyTracker
11-10 13:50:30.615: E/Parcel(2345):     ... 18 more
11-10 13:50:30.615: E/Parcel(2345): Caused by: java.lang.ClassNotFoundException: Didnt find class "com.google.android.gms.auth.firstparty.shared.LatencyTracker" on path: .
11-10 13:50:30.615: E/Parcel(2345):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 13:50:30.615: E/Parcel(2345):     ... 18 more

...

11-10 13:50:30.625: E/Parcel(2345): Class not found when unmarshalling: com.google.android.gms.auth.firstparty.shared.AppDescription
11-10 13:50:30.625: E/Parcel(2345): java.lang.ClassNotFoundException:     com.google.android.gms.auth.firstparty.shared.AppDescription
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.classForName(Native Method)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.forName(Class.java:204)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.forName(Class.java:169)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readParcelableCreator(Parcel.java:2091)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readParcelable(Parcel.java:2055)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readValue(Parcel.java:1971)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readMapInternal(Parcel.java:2255)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Bundle.unparcel(Bundle.java:223)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Bundle.getString(Bundle.java:1082)
11-10 13:50:30.625: E/Parcel(2345):     at android.content.Intent.getStringExtra(Intent.java:4961)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3283)
11-10 13:50:30.625: E/Parcel(2345):     at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Binder.execTransact(Binder.java:388)
11-10 13:50:30.625: E/Parcel(2345):     at dalvik.system.NativeStart.run(Native Method)
11-10 13:50:30.625: E/Parcel(2345): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/auth/firstparty/shared/AppDescription
11-10 13:50:30.625: E/Parcel(2345):     ... 19 more
11-10 13:50:30.625: E/Parcel(2345): Caused by: java.lang.ClassNotFoundException: Didnt find class "com.google.android.gms.auth.firstparty.shared.AppDescription" on path: .
11-10 13:50:30.625: E/Parcel(2345):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 13:50:30.625: E/Parcel(2345):     ... 19 more

有人对这个问题的原因有什么建议吗?

你找到这个问题的答案了吗?我遇到了同样的问题。我有一段时间没有调查这个问题了。如果我找到了解决方案,我会发布它。我使用的是GoogleAppClient,它基本上是相同的流程,我不断收到离线身份验证的请求。我相信我们也看到了同样的问题。我想还是没有解决办法?你找到这个问题的答案了吗?我也遇到了同样的问题
11-10 13:50:30.610: D/GLSActivity(4223): Starting LoginActivityTask for user: qwerty@gmail.com...
11-10 13:50:30.615: E/Parcel(2345): Class not found when unmarshalling: com.google.android.gms.auth.firstparty.shared.LatencyTracker
11-10 13:50:30.615: E/Parcel(2345): java.lang.ClassNotFoundException: com.google.android.gms.auth.firstparty.shared.LatencyTracker
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.classForName(Native Method)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.forName(Class.java:204)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.Class.forName(Class.java:169)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readParcelableCreator(Parcel.java:2091)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readParcelable(Parcel.java:2055)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readValue(Parcel.java:1971)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Parcel.readMapInternal(Parcel.java:2255)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Bundle.unparcel(Bundle.java:223)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Bundle.getString(Bundle.java:1082)
11-10 13:50:30.615: E/Parcel(2345):     at android.content.Intent.getStringExtra(Intent.java:4961)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:3173)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:3129)
11-10 13:50:30.615: E/Parcel(2345):     at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:157)
11-10 13:50:30.615: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125)
11-10 13:50:30.615: E/Parcel(2345):     at android.os.Binder.execTransact(Binder.java:388)
11-10 13:50:30.615: E/Parcel(2345):     at dalvik.system.NativeStart.run(Native Method)
11-10 13:50:30.615: E/Parcel(2345): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/auth/firstparty/shared/LatencyTracker
11-10 13:50:30.615: E/Parcel(2345):     ... 18 more
11-10 13:50:30.615: E/Parcel(2345): Caused by: java.lang.ClassNotFoundException: Didnt find class "com.google.android.gms.auth.firstparty.shared.LatencyTracker" on path: .
11-10 13:50:30.615: E/Parcel(2345):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 13:50:30.615: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 13:50:30.615: E/Parcel(2345):     ... 18 more

...

11-10 13:50:30.625: E/Parcel(2345): Class not found when unmarshalling: com.google.android.gms.auth.firstparty.shared.AppDescription
11-10 13:50:30.625: E/Parcel(2345): java.lang.ClassNotFoundException:     com.google.android.gms.auth.firstparty.shared.AppDescription
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.classForName(Native Method)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.forName(Class.java:204)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.Class.forName(Class.java:169)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readParcelableCreator(Parcel.java:2091)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readParcelable(Parcel.java:2055)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readValue(Parcel.java:1971)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Parcel.readMapInternal(Parcel.java:2255)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Bundle.unparcel(Bundle.java:223)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Bundle.getString(Bundle.java:1082)
11-10 13:50:30.625: E/Parcel(2345):     at android.content.Intent.getStringExtra(Intent.java:4961)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3283)
11-10 13:50:30.625: E/Parcel(2345):     at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258)
11-10 13:50:30.625: E/Parcel(2345):     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125)
11-10 13:50:30.625: E/Parcel(2345):     at android.os.Binder.execTransact(Binder.java:388)
11-10 13:50:30.625: E/Parcel(2345):     at dalvik.system.NativeStart.run(Native Method)
11-10 13:50:30.625: E/Parcel(2345): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/auth/firstparty/shared/AppDescription
11-10 13:50:30.625: E/Parcel(2345):     ... 19 more
11-10 13:50:30.625: E/Parcel(2345): Caused by: java.lang.ClassNotFoundException: Didnt find class "com.google.android.gms.auth.firstparty.shared.AppDescription" on path: .
11-10 13:50:30.625: E/Parcel(2345):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 13:50:30.625: E/Parcel(2345):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 13:50:30.625: E/Parcel(2345):     ... 19 more