2016-04-20 6 views
0

GoogleのアプリケーションにGoogleのログイン機能があります。そして、私たちはビルドシステムの使用 "mm"または "make"コマンドからAPKを構築しています。私はAndroid.mkにGoogleログインに必要なjarファイルを含めました。AndroidのGoogleログインのログインに誤りがあり、アンドロイドのビルドシステム

今私の問題は、私はOAuthのトーク​​ンエラーが返さ必要があれば、私はGoogleのを使用してログインすることができませんですからstatusCode =不明なステータスコードです:12501、serverClientIdは、webアプリケーションIDが後に返され、解像度= 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(); 

Google開発者コンソール

私は上記のコードを使用しています。スコープを使用すると、正常にログインできますが、oauthトークンは使用できません。

同じコードを使用してAndroid Studioで実行すると、google_service.jsonファイルがあるのでログインすることができますので、gradleが選択してapkをビルドします。

だから私の場合、いずれかが私の仮定は、我々は

のgetStringを交換し

答えて

0

3日後、私は答えの解決策を得ました。なぜAndroid Studioで動作していたのですか?apkはビルド中にデバッグキーで署名されます。ビルドシステムからは、デバッグキーで署名されていません。だから今私がやっているのは、 "mm"コマンドの後に生成された後、デバッグキーストアでapkに署名することです。 GoogleアカウントでもMD5(SHA1)を使用する必要があります。

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

Android.mkするためにGoogleのサービスのJSONファイルをリンクする必要があり、GoogleはサインインビルドシステムからAPKを構築することにより、試してみました(R .string.server_client_id);

AuthenticatedActivity.this.getResources()と

のgetString(R.string.server_client_id)。

0

私の解決策は、Google+をアンインストールして再インストールすることでした。それ以降はすべて正常に機能しました。

関連する問題