FirebaseAuth.instance.signInWithEmailAndPassword(电子邮件,密码)使崩溃崩溃

时间:2019-08-30 13:05:27

标签: firebase authentication flutter firebase-authentication flutter-dependencies

执行Firebase身份验证功能signInWithEmailAndPassword时,Flutter应用程序崩溃

我建议该问题与不兼容的版本有关。但是对于较低的版本,androidx存在问题。

Future<String> signInWithEmailAndPassword(String email, String password)async{
    FirebaseUser user = (await  _firebaseAuth.signInWithEmailAndPassword(email: email, password: password)).user; //Here it crashes
    return user.uid;
  }

pubspec.yaml中的依赖项:

dependencies:
  flutter:
    sdk: flutter
  cloud_firestore: any
  firebase_auth: 0.14.0+5

我对项目级别.gradle的依赖:

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }

在应用程序级别.gradle

defaultConfig {
        applicationId "com.example.testtool"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

和依赖项(也在应用程序级别.gradle中):

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-analytics:17.0.1'
    implementation 'androidx.multidex:multidex:2.0.1'

}
apply plugin: 'com.google.gms.google-services' 

这是错误:

I/flutter (25442): Another exception was thrown: NoSuchMethodError: The getter 'position' was called on null.
I/chatty  (25442): uid=10234(com.example.testtool) 2.ui identical 8 lines
I/flutter (25442): Another exception was thrown: NoSuchMethodError: The getter 'position' was called on null.
W/BiChannelGoogleApi(25442): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@98a1ffc
E/JavaBinder(25442): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
E/JavaBinder(25442): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
E/JavaBinder(25442):    at com.google.firebase.auth.internal.zzam.zzc(Unknown Source:22)
E/JavaBinder(25442):    at com.google.firebase.auth.internal.zzam.zzde(Unknown Source:17)
E/JavaBinder(25442):    at com.google.firebase.auth.internal.zzam.zzdd(Unknown Source:8)
E/JavaBinder(25442):    at com.google.firebase.auth.internal.zzan.zzdf(Unknown Source:1)
E/JavaBinder(25442):    at com.google.firebase.auth.internal.zzm.isAnonymous(Unknown Source:47)
E/JavaBinder(25442):    at com.google.firebase.auth.api.internal.zzep.zza(Unknown Source:9)
E/JavaBinder(25442):    at com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(Unknown Source:9)
E/JavaBinder(25442):    at com.google.android.gms.internal.firebase_auth.zza.onTransact(Unknown Source:13)
E/JavaBinder(25442):    at android.os.Binder.execTransact(Binder.java:731)
E/JavaBinder(25442): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/lib/arm64, /data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/JavaBinder(25442):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
E/JavaBinder(25442):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/JavaBinder(25442):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/JavaBinder(25442):    ... 16 more
E/AndroidRuntime(25442): FATAL EXCEPTION: Binder:25442_2
E/AndroidRuntime(25442):    at com.google.firebase.auth.internal.zzat.zzi(Unknown Source:57)
E/AndroidRuntime(25442):    at com.google.firebase.auth.internal.zzat.zzg(Unknown Source:10)
E/AndroidRuntime(25442):    at com.google.firebase.auth.FirebaseAuth.zza(Unknown Source:62)
E/AndroidRuntime(25442):    at com.google.firebase.auth.FirebaseAuth$zzb.zza(Unknown Source:5)
E/AndroidRuntime(25442):    at com.google.firebase.auth.api.internal.zzcr.zzdx(Unknown Source:15)
E/AndroidRuntime(25442):    at com.google.firebase.auth.api.internal.zzen.zzen(Unknown Source:35)
E/AndroidRuntime(25442):    at com.google.firebase.auth.api.internal.zzen.zza(Unknown Source:41)
E/AndroidRuntime(25442):    at com.google.firebase.auth.api.internal.zzep.zza(Unknown Source:9)
E/AndroidRuntime(25442):    at com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(Unknown Source:9)
E/AndroidRuntime(25442):    at com.google.android.gms.internal.firebase_auth.zza.onTransact(Unknown Source:13)
E/AndroidRuntime(25442):    at android.os.Binder.execTransact(Binder.java:731)
E/AndroidRuntime(25442): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/lib/arm64, /data/app/com.example.testtool-H8ql3WqJ13OCb4aCfdLNsQ==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/AndroidRuntime(25442):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
E/AndroidRuntime(25442):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(25442):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(25442):    ... 16 more
I/Process (25442): Sending signal. PID: 25442 SIG: 9
Lost connection to device.

2 个答案:

答案 0 :(得分:1)

问题是与androidx不兼容。如果您遇到类似的情况,请尝试将项目迁移到androidx https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

答案 1 :(得分:0)

您的项目中是否存在google-services.json文件?