Androidデバイスの公式ガイドgoogle log-inに従っています。Googleでログインできない
私は正常にAccount picker
を取得しますが、私が結果を処理すると、常に成功しません。
これは私が何をやったかである:
- 私は私のコンソールにログインし、私は私が私のAPKを作成するために使用されるキーストアのコンソールコマンドを使用して得られ、このプロジェクトのために
SHA-1
を設定します。 (新しく作成された)。 - 次に、google-services.jsonファイルをダウンロードし、アプリ/フォルダに入れました。ガイドに示唆したように最後に、私はボタンでの符号
public class SigninMenuFragment extends Fragment implements GoogleApiClient.OnConnectionFailedListener, GoogleApiClient.ConnectionCallbacks { private final static String TAG = "SigninMenuFragment"; private Button btnFacebookLogin, btnSignin, btnSignup; private Button btnGoogleLogin; private static final int RC_SIGN_IN = 9001; private GoogleApiClient mGoogleApiClient; private ProgressDialog mProgressDialog; public SigninMenuFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_signin_menu, container, false); btnFacebookLogin = (Button) view.findViewById(R.id.btnLoginFacebook); btnGoogleLogin = (Button) view.findViewById(R.id.btnLoginGoogle); btnSignin = (Button) view.findViewById(R.id.btnSignIn); btnSignup = (Button) view.findViewById(R.id.btnSignUp); btnGoogleLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { googleLogin(); } }); btnFacebookLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { facebookLogin(); } }); GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .build(); mGoogleApiClient = new GoogleApiClient.Builder(getContext()) .enableAutoManage(getActivity() /* FragmentActivity */, this /* OnConnectionFailedListener */) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); return view; } private void facebookLogin() { //todo } private void googleLogin() { Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); } @Override public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_SIGN_IN) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); handleSignInResult(result); } } private void handleSignInResult(GoogleSignInResult result) { Log.d(TAG, "handleSignInResult:" + result.isSuccess()); GoogleSignInAccount a = result.getSignInAccount(); if(a == null){ Log.d(TAG, "null"); }else{ Log.d(TAG, a.getDisplayName()); } if (result.isSuccess()) { // Signed in successfully, show authenticated UI. GoogleSignInAccount acct = result.getSignInAccount(); } else { // Signed out, show unauthenticated UI. } } @Override public void onStart() { super.onStart(); } @Override public void onStop() { super.onStop(); if (mProgressDialog != null) { mProgressDialog.dismiss(); } } private void showProgressDialog() { if (mProgressDialog == null) { mProgressDialog = new ProgressDialog(getActivity()); mProgressDialog.setMessage("Loading"); mProgressDialog.setIndeterminate(true); } mProgressDialog.show(); } private void hideProgressDialog() { if (mProgressDialog != null && mProgressDialog.isShowing()) { mProgressDialog.hide(); } } @Override public void onConnected(@Nullable Bundle bundle) { Log.d(TAG, "Connected"); } @Override public void onConnectionSuspended(int i) { Log.d(TAG, "NOT Connected"); } }
私のマニフェスト
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <application android:name=".other.MyCustomApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".activities.SplashScreenActivity" android:theme="@style/AppThemeNoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- ... --> </application>
で断片
(以下のコードを掲示)ログインを実装
//...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.code.gson:gson:2.7'
compile 'com.android.support:multidex:1.0.1'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.google.android.gms:play-services-places:11.4.0'
compile 'com.google.android.gms:play-services-location:11.4.0'
compile 'com.google.android.gms:play-services-maps:11.4.0'
compile 'io.realm:android-adapters:2.1.0'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.google.firebase:firebase-core:11.4.0'
compile 'com.google.firebase:firebase-messaging:11.4.0'
compile 'com.facebook.android:facebook-login:[4,5)'
compile 'com.google.android.gms:play-services-auth:11.4.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
いくつかの注釈:
- 私
activity
は、ログインbutton
が私の最大の疑問は、他のファイルから、SHA-1世代についてカスタム
ですFragmentActivity
私が間違ってやっているの任意のアイデアがありますか? 32:40.974 23319から23319/utilitapps.prodottilastminute I/HwSecImmHelper私はボタン
10-19 09をクリックし
おかげで、すべての
EDIT
LogCat :mSecurityInputMethodServiceがnullです。10-19 09:32:41.048 23319-23319/utilitapps.prodottilastminute V/AudioManager: playSoundEffect effectType:0 10-19 09:32:41.049 23319から23319/utilitapps.prodottilastminuteのV/AudioManager: querySoundEffectsEnabled ...
--------- beginning of system 10-19 09:32:41.068 23319-23483/utilitapps.prodottilastminute V/FA: Recording user
係合、MS:15514 10-19 09:32:41.069 23319-23483/utilitapps。プロダクトライフタイムV/FA:測定を使用する サービス10-19 09:32:41.070 23319-23483/utilitapps.prodottilastminute V/FA:リモートサービスに接続10-19 09:32:41.082 23319-23483/utilitapps.prodottilastminute V/FA: 144716338 10-19 09:32:41.086 23319から23319/utilitapps.prodottilastminute V/ActivityThread:ActivityThread、callActivityOnCreate 10-19 09:32:41.087 23319から23319/utilitapps.prodottilastminute Vアクティビティは、時間を一時停止しました/ FA:32:10-19 09 onActivityCreated 41.087 23319から23483/utilitapps.prodottilastminuteのD/FA:ログイベント(FE): user_engagement(_E)、バンドル[{firebase_event_origin(_o)=オート、 engagement_time_msec( _et)= 15514、 firebase_screen_clas (_sc)= SplashScreenActivity、 firebase_screen_id(_si)= 2950491777079955672}] 10-19 09:32:41.122 23319-23483/utilitapps.prodottilastminute V/FA:測定値の使用 サービス10-19 09:32:41.122 23319- 23483/utilitapps.prodottilastminute サービス10-19 09:32:41.124 23319-23483 V/FA:接続試行がすでに進行中10-19 09:32:41.124 23319-23483/utilitapps.prodottilastminute V/FA:測定を使用しています。既に進行中の接続試行10-19 09:32:41.124 23319から23483/utilitapps.prodottilastminuteのV/FA:アクティビティが再開、 時間:144716382 10-19 09:32:41.128 V/FAを/utilitapps.prodottilastminute 23319-23483/utilitapps.prodottilastminute D/FA:ロギングイベント(FE): screen_view(_vs)、バンドル[{firebase_event_origin(_o)=オート、 firebase_previous_class(_pc)= SplashScreenActivityを firebase_previous_id(_pi)= 2950491777079955672、 firebase_screen_class(_sc)= SignInHubActivity、 firebase_screen_id(_si)= 2950491777079955674}] 10 -19 09:32:41.163 23319-23483/utilitapps.prodottilastminute V/FA:測定値を使用する サービス10-19 09:32:41.164 23319-23483/utilitapps.prodottilastminute V/FA:接続試行がすでに進行中です。 19 09:32:41.169 23319-23483/utilitapps.prodottilastminute V/FA: 1000ミリ秒未満の画面が表示されます。イベントは送信されませんでした。時間:57 10-19 09:32:41.169 23319-23483/utilitapps.prodottilastminute V/FA:測定値の使用 サービス10-19 09:32:41.169 23319-23483/utilitapps.prodottilastminute V/FA:接続試行済み進行中の10-19 09:32:41.169 23319から23483/utilitapps.prodottilastminuteのV/FA:144716439 10-19 09:32:活動は、時間を一時停止41.196 23319から23483/utilitapps.prodottilastminuteのD/FA: リモートサービスに接続10-19 09:32:41.196 23319-23483/utilitapps.prodottilastminute V/FA:処理待ち: サービスタスク:5 10-19 09:32:46.263 23319-23483/utilitapps.prodottilastminute V/FA: FA:非アクティブ、 サービスからの切断
LogCat私はアカウントを選択:34:
10-19 09 49.570 23319から23319/I/HwSecImmHelper utilitapps.prodottilastminuteを:mSecurityInputMethodServiceは10-19 09 nullです。 34:49.583 23319から23319/utilitapps.prodottilastminute D/SigninMenuFragment:handleSignInResult:偽10-19 09:34:49.583 23319から23319/utilitapps.prodottilastminuteのD/SigninMenuFragment:ヌル 10-19 09:34:49.585 23319- 25806/utilitapps.prodottilastminute V/FA: Activ時間再開、時間:144844854 10-19 09:34:49.592 23319-25806/utilitapps。prodottilastminute D/FA:ログイベント(FE): screen_view(_vs)、バンドル[{firebase_event_origin(_o)=オート、 firebase_previous_class(_pc)= SignInHubActivity、 firebase_previous_id(_pi)= 2950491777079955675、 firebase_screen_class(_sc)= SplashScreenActivity 、 firebase_screen_id(_si)= 2950491777079955672}] 10-19 09:34:49.598 23319から23319/utilitapps.prodottilastminute私は/ HwSecImmHelper: mSecurityInputMethodServiceがnull
https://developers.google.com/mobile/add?platform=android&cntapi=signin&cnturl=https:%2F%2Fdevelopers.google.com%2Fidentity%2Fsign-in%2Fandroid %2Fsign-in%3Fconfigured%3Dtrue&cntlbl =%20Adding%20Sign-Inを続行します。パッケージ名を確認し、SHA-1コード –
をデバッグしてください。任意のlogcat? –
@IntelliJAmiya "mykeystone.jks"のパスでsha-1コードを再生成しようとしましたが、成功していないので、何も役に立たなくてもlogcatを追加しました。あなたのヒントをありがとう –