2015-12-04 3 views
9

Ich verzweigte this google Beispielprojekt und lief das android Signin.Google-Anmeldung requestIdToken gibt null zurück

Ich habe die Optionen in der Google Developers-Konsole eingerichtet und eine Client-ID erhalten, aber beim Ausführen des Projekts kommt das ID-Token auf Null.

Der vollständige Code ist here
Dieser Code fordert das ID-Token an.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken(getString(R.string.server_client_id)) 
      .requestEmail() 
      .build(); 

Ich vermisse etwas im Setup, irgendwelche Vorschläge.

Hier ist die Log

12-04 15:55:59.247 13251-13251/? I/SELinux: Function: selinux_android_load_priority [0], There is no sepolicy file. 

12-04 15:55:59.247 13251-13251/? I/SELinux: Function: selinux_android_load_priority [1], There is no sepolicy version file. 

12-04 15:55:59.247 13251-13251/? I/SELinux: Function: selinux_android_load_priority , priority version is VE=SEPF_GT-N7100_4.4.2_0033 


12-04 15:55:59.247 13251-13251/? I/SELinux: selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts 
12-04 15:55:59.252 13251-13251/? D/dalvikvm: Late-enabling CheckJNI 
12-04 15:55:59.362 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza 
12-04 15:55:59.362 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve virtual method 194: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder; 
12-04 15:55:59.362 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x6e at 0x00c8 
12-04 15:55:59.367 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zzh 
12-04 15:55:59.367 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve virtual method 453: Landroid/content/pm/PackageManager;.getPackageInstaller()Landroid/content/pm/PackageInstaller; 
12-04 15:55:59.367 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x6e at 0x000b 
12-04 15:55:59.402 13251-13275/com.google.samples.quickstart.signin I/GMPM: App measurement is starting up 
12-04 15:55:59.417 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;) 
12-04 15:55:59.417 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.internal.view.WindowCallbackWrapper.onSearchRequested 
12-04 15:55:59.417 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve interface method 15687: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z 
12-04 15:55:59.417 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
12-04 15:55:59.422 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.internal.view.WindowCallbackWrapper.onWindowStartingActionMode 
12-04 15:55:59.422 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve interface method 15691: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
12-04 15:55:59.422 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve virtual method 528: Landroid/content/res/TypedArray;.getChangingConfigurations()I 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin W/dalvikvm: VFY: unable to resolve virtual method 550: Landroid/content/res/TypedArray;.getType (I)I 
12-04 15:55:59.462 13251-13251/com.google.samples.quickstart.signin D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 
12-04 15:55:59.512 13251-13251/com.google.samples.quickstart.signin D/AbsListView: Get MotionRecognitionManager 
12-04 15:55:59.567 13251-13251/com.google.samples.quickstart.signin D/libEGL: loaded /system/lib/egl/libEGL_mali.so 
12-04 15:55:59.567 13251-13251/com.google.samples.quickstart.signin D/libEGL: loaded /system/lib/egl/libGLESv1_CM_mali.so 
12-04 15:55:59.572 13251-13251/com.google.samples.quickstart.signin D/libEGL: loaded /system/lib/egl/libGLESv2_mali.so 
12-04 15:55:59.637 13251-13251/com.google.samples.quickstart.signin D/OpenGLRenderer: Enabling debug mode 0 
12-04 15:56:12.417 13251-13251/com.google.samples.quickstart.signin D/IdTokenActivity: onActivityResult:GET_TOKEN:success:false 
12-04 15:56:48.477 13251-13257/com.google.samples.quickstart.signin D/dalvikvm: GC_FOR_ALLOC freed 707K, 17% free 9803K/11764K, paused 34ms, total 34ms 

Top-Level-Build-Skript

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.5.0' 
     classpath 'com.google.gms:google-services:1.5.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

App Level Build-Skript

apply plugin: 'com.android.application' 
apply plugin: 'com.google.gms.google-services' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.google.samples.quickstart.signin" 
     minSdkVersion 18 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    packagingOptions { 
     exclude 'LICENSE.txt' 
    } 

    // Resolve dependency differences between app and tests 
    configurations.all { 
     resolutionStrategy.force 'com.android.support:support-annotations:23.1.1' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 

    // Dependency for Google Sign-In 
    compile 'com.google.android.gms:play-services-auth:8.3.0' 

    // UiAutomatorTesting 
    androidTestCompile 'com.android.support.test:runner:0.2' 
    androidTestCompile 'com.android.support.test:rules:0.2' 
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.0' 
    androidTestCompile 'com.android.support:support-annotations:23.1.1' 
} 

google-services.json Datei

{ 
    "project_info": { 
    "project_id": "se....-la..da-......", 
    "project_number": "6043........", 
    "name": "Demo" 
    }, 
    "client": [ 
    { 
     "client_info": { 
     "mobilesdk_app_id": "1:6.3....24..:and..id:f62.........40e", 
     "client_id": "android:com.example.googlesignindemo", 
     "client_type": 1, 
     "android_client_info": { 
      "package_name": "com.example.googlesignindemo" 
     } 
     }, 
     "oauth_client": [ 
     { 
      "client_id": "604...430-uho...slp......v2l........d9...ps.g.....leu........com", 
      "client_type": 1, 
      "android_info": { 
      "package_name": "com.example.googlesignindemo", 
      "certificate_hash": "mysha1 fingerprint from debug keystore" 
      } 
     } 
     ], 
     "api_key": [], 
     "services": { 
     "analytics_service": { 
      "status": 1 
     }, 
     "cloud_messaging_service": { 
      "status": 1, 
      "apns_config": [] 
     }, 
     "appinvite_service": { 
      "status": 1, 
      "other_platform_oauth_client": [] 
     }, 
     "google_signin_service": { 
      "status": 2 
     }, 
     "ads_service": { 
      "status": 1 
     } 
     } 
    } 
    ], 
    "client_info": [], 
    "ARTIFACT_VERSION": "1" 
} 
+0

Konnten Sie die Protokolle posten – g90

+0

Veröffentlichen Sie Ihre 2 build.digles-Dateien und sind Sie sicher, dass Ihre ApplicationId in Ihrer App der gleiche wie der Paketname unter http: // console.developers.google.com, dem Google ist "com.google.samples.quickstart.signin" des Beispielprojekts – BNK

+0

@BNK Ich habe den Paketnamen "com.google.samples.quickstart.signin" auf der OAuth 2.0-Client-ID-Erstellungsseite in der Entwicklerkonsole hinzugefügt und meinen sha1 Debug-Fingerabdruck hinzugefügt. – JosephK

Antwort

29

Wie ich kommentiert und als Google in der Dokumentation, sollten Sie "Web-Anwendung" Typ Client-ID, statt "Android" Typ Client-ID verwenden.

wie der folgende Screenshot:

BNK's screenshot

12

Use "default_web_client_id" in GoogleSignInOptions

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestIdToken(getString(R.string.default_web_client_id)) 
       .requestEmail() 
       .build(); 

Es funktioniert perfekt.

+0

Könnten Sie mir bitte mit meinem Problem helfen, ich verbringe einige Tage damit, es zu lösen ... Ich benutze den gleichen Code, aber wenn ich TokenId von Google API retrigiere, bekomme ich eine Zeichenfolge tokenId = <857 chars> ... ?? Wenn ich versuchte, es zu validieren googleapis.com/oauth2/v3/tokeninfo?access_token= <857 chars response> ich alle bekommen 'error_description ":" Ungültiger Wert' ... Wie machen Sie eine Validierung Ihrer Antwort? Erhalten Sie auch String tokenId = <857 chars>? –