I have 2 flutter apps as my learning. Both of them using firebase auth and google sign in with exact same code. I manage to copy this snippet from this url But have different firebase app.
First App is completely run well. but the second one is kind of misterious. I do not know why I getting this error
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): Failed to handle method call
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.addAuthStateListener(com.google.firebase.auth.FirebaseAuth$AuthStateListener)' on a null object reference
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.handleStartListeningAuthState(FirebaseAuthPlugin.java:629)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.onMethodCall(FirebaseAuthPlugin.java:149)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at android.os.Looper.loop(Looper.java:160)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at android.app.ActivityThread.main(ActivityThread.java:6669)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/MethodChannel#plugins.flutter.io/firebase_auth( 9042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
D/EGL_emulation( 9042): eglMakeCurrent: 0xc9976640: ver 2 0 (tinfo 0xe1031ea0)
E/flutter ( 9042): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.addAuthStateListener(com.google.firebase.auth.FirebaseAuth$AuthStateListener)' on a null object reference, null)
and this error when I signing in with google sign in.
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): Failed to handle method call
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.tokoku_flutter/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}; have you declared this activity in your AndroidManifest.xml?
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2005)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.app.Activity.startActivityForResult(Activity.java:4586)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.app.Activity.startActivityForResult(Activity.java:4544)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate.signIn(GoogleSignInPlugin.java:292)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at io.flutter.plugins.googlesignin.GoogleSignInPlugin.onMethodCall(GoogleSignInPlugin.java:77)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.os.Looper.loop(Looper.java:160)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at android.app.ActivityThread.main(ActivityThread.java:6669)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/MethodChannel#plugins.flutter.io/google_sign_in( 9042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
D/AndroidRuntime( 9042): Shutting down VM
E/AndroidRuntime( 9042): FATAL EXCEPTION: main
E/AndroidRuntime( 9042): Process: com.example.tokoku_flutter, PID: 9042
E/AndroidRuntime( 9042): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=53293, result=0, data=null} to activity {com.example.tokoku_flutter/com.example.tokoku_flutter.MainActivity}: java.lang.IllegalStateException: Reply already submitted
E/AndroidRuntime( 9042): at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
E/AndroidRuntime( 9042): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
E/AndroidRuntime( 9042): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
E/AndroidRuntime( 9042): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime( 9042): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime( 9042): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
E/AndroidRuntime( 9042): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 9042): at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 9042): at android.app.ActivityThread.main(ActivityThread.java:6669)
E/AndroidRuntime( 9042): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 9042): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime( 9042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime( 9042): Caused by: java.lang.IllegalStateException: Reply already submitted
E/AndroidRuntime( 9042): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:124)
E/AndroidRuntime( 9042): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:209)
E/AndroidRuntime( 9042): at io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate.finishWithError(GoogleSignInPlugin.java:386)
E/AndroidRuntime( 9042): at io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate.onActivityResult(GoogleSignInPlugin.java:524)
E/AndroidRuntime( 9042): at io.flutter.app.FlutterPluginRegistry.onActivityResult(FlutterPluginRegistry.java:222)
E/AndroidRuntime( 9042): at io.flutter.app.FlutterActivityDelegate.onActivityResult(FlutterActivityDelegate.java:142)
E/AndroidRuntime( 9042): at io.flutter.app.FlutterActivity.onActivityResult(FlutterActivity.java:142)
E/AndroidRuntime( 9042): at android.app.Activity.dispatchActivityResult(Activity.java:7454)
E/AndroidRuntime( 9042): at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
E/AndroidRuntime( 9042): ... 11 more
E/flutter ( 9042): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Unable to find explicit activity class {com.example.tokoku_flutter/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}; have you declared this activity in your AndroidManifest.xml?, null)
E/flutter ( 9042): #0 StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:564
E/flutter ( 9042): #1 MethodChannel.invokeMethod
package:flutter/…/services/platform_channel.dart:302
E/flutter ( 9042): <asynchronous suspension>
E/flutter ( 9042): #2 GoogleSignIn._callMethod
package:google_sign_in/google_sign_in.dart:226
E/flutter ( 9042): <asynchronous suspension>
E/flutter ( 9042): #3 GoogleSignIn._addMethodCall
package:google_sign_in/google_sign_in.dart:268
E/flutter ( 9042): #4 GoogleSignIn.signIn
package:google_sign_in/google_sign_in.dart:339
E/flutter ( 9042): #5 AuthService.googleSignIn
package:tokoku_flutter/services/AuthService.dart:39
E/flutter ( 9042): <asynchronous suspension>
E/flutter ( 9042): #6 _LoginPageState._loginButton.<anonymous closure>.<anonymous closure>
package:tokoku_flutter/pages/LoginPage.dart:60
E/flutter ( 9042): #7 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:511
E/flutter ( 9042): #8 _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:566
E/flutter ( 9042): #9 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:166
E/flutter ( 9042): #10 TapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:240
E/flutter ( 9042): #11 TapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:177
E/flutter ( 9042): #12 PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:436
E/flutter ( 9042): #13 PointerRouter._dispatch
package:flutter/…/gestures/pointer_router.dart:73
E/flutter ( 9042): #14 PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:101
E/flutter ( 9042): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:221
E/flutter ( 9042): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:199
E/flutter ( 9042): #17 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:156
E/flutter ( 9042): #18 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:102
E/flutter ( 9042): #19 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:86
E/flutter ( 9042): #20 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter ( 9042): #21 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter ( 9042): #22 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter ( 9042): #23 _invoke1 (dart:ui/hooks.dart:233:10)
E/flutter ( 9042): #24 _dispatchPointerDataPacket (dart:ui/hooks.dart:154:5)
E/flutter ( 9042):
I/Process ( 9042): Sending signal. PID: 9042 SIG: 9
Lost connection to device.
Exited (sigterm)
after tap the sign in button, my app is closed.
here my dependencies i use:
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
rxdart: ^0.22.0
firebase_auth: ^0.11.1
firebase_core: ^0.4.0+1
google_sign_in: ^4.0.1+3
cloud_firestore: ^0.11.0+2
get_it: ^1.0.3
NB: I already set my sha key in my firebase app. I already put the googleservice.json I already add classpath and dependencies in gradle I already migrate my flutter app to androidX
After struggling with this issue for a while I was able to find this github issue.
Run flutter clean
and the issue goes away!