2016-04-20 14 views
0

Ich habe Google Login-Funktion in unserer Anwendung. Und wir bauen apk vom Build-System verwenden "mm" oder "make" -Befehl, ich habe erforderliche Jars für Google Login in Android.mk enthalten.Android Google Login-Anmeldefehler, Android Build-System

Nun mein Problem ist, ich bin nicht in der Lage mit Google anmelden, wenn ich OAuth-Token-Fehler erfordern status = unbekannt Statuscode zurückgegeben: 12501, Auflösung = null

String serverClientId = getString(R.string.server_client_id); 

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(
     GoogleSignInOptions.DEFAULT_SIGN_IN).requestServerAuthCode(
     serverClientId).build(); 

// Build a GoogleApiClient with access to the Google Sign-In API and the 
// options specified by gso. 
mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this, this) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso).build(); 

wo serverClientId Webapplikation id zurückgegeben wird, ist nach Google Entwickler-Konsole

Ich verwende den obigen Code. Wenn ich Scope verwende, kann ich mich erfolgreich anmelden, aber kein OAUTH Token.

Wenn ich denselben Code benutze und in Android Studio laufe, kann ich mich anmelden, wie es google_service.json Datei hat, damit grddle apk aufnimmt und baut.

Also in meinem Fall habe jemand versucht, Google-Anmeldung von apk von Build-System bauen, meine Vermutung ist, dass wir Google-Dienst JSON-Datei verlinken auf Android.mk

Antwort

0

Nach drei Tagen bekam ich die Lösung für die Antwort. Warum es mit Android Studio funktionierte, wird apk während des Aufbaus mit dem Debug-Schlüssel signiert. Ab dem Build-System ist es nicht mit dem Debug-Key signiert. Also, was ich jetzt mache, ist die Apk mit Debug Keystore signieren, nachdem es nach "mm" -Befehl generiert wurde. Wir müssen MD5 (SHA1) auch im Google-Konto verwenden.

1. zip -d <APK> "META-INF*" 
2. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <path to keystore>/debug.keystore <APK> keyalas 
     passwords: 
       android 
3. <path to zipalign>/zipalign -v 4 <APK in> <APK out> 
0

ersetzen

getString benötigen (R .string.server_client_id);

mit

AuthenticatedActivity.this.getResources() getString (R.string.server_client_id.);

0

Meine Lösung bestand darin, Google+ zu deinstallieren und neu zu installieren. Danach funktionierte alles einwandfrei.