android - Error occuring on successful firebase authentication login
问题描述
I currently have this code to authenticate a user in firebase authentication:
class Auth implements BaseAuth {
Future<String> signInWithEmailAndPassword(String email, String password) async {
try {
AuthResult user = await FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: password);
print(user.user.uid);
return user.user.uid;
} catch(e) {
print('Error: $e');
String code;
switch(e.code) {
case 'ERROR_INVALID_EMAIL':
code = 'The email you specifed was not valid.';
break;
case 'ERROR_USER_NOT_FOUND':
code = 'The user could not be found.';
break;
case 'ERROR_USER_DISABLED':
code = 'This user\'s account was disabled.';
break;
case 'ERROR_WRONG_PASSWORD':
code = 'The password you entered for this account is invalid';
break;
case 'ERROR_TOO_MANY_REQUESTS':
code =
'There have been too many requests sent from this device. Please try again later.';
break;
default:
code = "There was an error with your request.";
break;
}
throw(code);
}
}
When entering invalid credentials, the catch works fine and returns the error message to the place that is calling it. However,when I enter valid credentials, it throws this error:
W/BiChannelGoogleApi( 7405): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@8e5055f
E/JavaBinder( 7405): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
E/JavaBinder( 7405): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzam.zzc(Unknown Source:22)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzam.zzde(Unknown Source:17)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzam.zzdd(Unknown Source:8)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzan.zzdf(Unknown Source:1)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzm.isAnonymous(Unknown Source:47)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzat.zzi(Unknown Source:57)
E/JavaBinder( 7405): at com.google.firebase.auth.internal.zzat.zzg(Unknown Source:10)
E/JavaBinder( 7405): at com.google.firebase.auth.FirebaseAuth.zza(Unknown Source:62)
E/JavaBinder( 7405): at com.google.firebase.auth.FirebaseAuth$zzb.zza(Unknown Source:5)
E/JavaBinder( 7405): at com.google.firebase.auth.api.internal.zzcr.zzdx(Unknown Source:15)
E/JavaBinder( 7405): at com.google.firebase.auth.api.internal.zzen.zzen(Unknown Source:35)
E/JavaBinder( 7405): at com.google.firebase.auth.api.internal.zzen.zza(Unknown Source:41)
E/JavaBinder( 7405): at com.google.firebase.auth.api.internal.zzep.zza(Unknown Source:9)
E/JavaBinder( 7405): at com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(Unknown Source:9)
E/JavaBinder( 7405): at com.google.android.gms.internal.firebase_auth.zza.onTransact(Unknown Source:13)
E/JavaBinder( 7405): at android.os.Binder.execTransact(Binder.java:752)
E/JavaBinder( 7405): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/base.apk"],nativeLibraryDirectories=[/data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/lib/arm64, /data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/JavaBinder( 7405): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:169)
E/JavaBinder( 7405): at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/JavaBinder( 7405): at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/JavaBinder( 7405): ... 16 more
E/AndroidRuntime( 7405): FATAL EXCEPTION: Binder:7405_1
E/AndroidRuntime( 7405): Process: com.musiplangroup.musiplan, PID: 7405
E/AndroidRuntime( 7405): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzam.zzc(Unknown Source:22)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzam.zzde(Unknown Source:17)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzam.zzdd(Unknown Source:8)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzan.zzdf(Unknown Source:1)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzm.isAnonymous(Unknown Source:47)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzat.zzi(Unknown Source:57)
E/AndroidRuntime( 7405): at com.google.firebase.auth.internal.zzat.zzg(Unknown Source:10)
E/AndroidRuntime( 7405): at com.google.firebase.auth.FirebaseAuth.zza(Unknown Source:62)
E/AndroidRuntime( 7405): at com.google.firebase.auth.FirebaseAuth$zzb.zza(Unknown Source:5)
E/AndroidRuntime( 7405): at com.google.firebase.auth.api.internal.zzcr.zzdx(Unknown Source:15)
E/AndroidRuntime( 7405): at com.google.firebase.auth.api.internal.zzen.zzen(Unknown Source:35)
E/AndroidRuntime( 7405): at com.google.firebase.auth.api.internal.zzen.zza(Unknown Source:41)
E/AndroidRuntime( 7405): at com.google.firebase.auth.api.internal.zzep.zza(Unknown Source:9)
E/AndroidRuntime( 7405): at com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(Unknown Source:9)
E/AndroidRuntime( 7405): at com.google.android.gms.internal.firebase_auth.zza.onTransact(Unknown Source:13)
E/AndroidRuntime( 7405): at android.os.Binder.execTransact(Binder.java:752)
E/AndroidRuntime( 7405): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/base.apk"],nativeLibraryDirectories=[/data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/lib/arm64, /data/app/com.musiplangroup.musiplan-hT4gof_IgKcfYAPoywPYJw==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/AndroidRuntime( 7405): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:169)
E/AndroidRuntime( 7405): at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime( 7405): at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime( 7405): ... 16 more
W/OPDiagnose( 7405): getService:OPDiagnoseService NULL
D/OSTracker( 7405): OS Event: crash
D/AbstractTracker( 7405): Event success
I/Process ( 7405): Sending signal. PID: 7405 SIG: 9
As said before, the code above works fine for catching errors like wrong password
or wrong email
, and returns the code created in the switch statement. However, on a successful login it causes a crash with that error message.
I'm using the firebase_auth
package for this.
I would really appreciate some help on this.
解决方案
我认为您的应用程序中缺少 v4 支持库。尝试将 v4 支持库添加为 gradle 依赖项
// https://mvnrepository.com/artifact/com.android.support/support-v4
compile group: 'com.android.support', name: 'support-v4', version: '28.0.0'
推荐阅读
- docker - ubuntu apt-get 存储库给出错误 gpg: no valid OpenPGP data found
- reactjs - Invariant Violation - Conditional rendering
- angular - @zxing/ngx-scanner 角度库无法读取所有类型的条码
- statistics - 用于贝叶斯回归的聚类组
- python-3.x - .sh 文件中的 Gunicorn 无法导入已安装的 python 包
- ajax - 从我的网站下载离线版本,其中包含 ajax 调用
- c++ - c ++试图在不存在的构造函数中引用已删除的函数(使用rapidJson)
- r - 将 R 中的多个列与所有可能的组合值组合在一起
- java - 在另一个类中注入一个类对象而不在构造函数中添加它
- c# - 更改 .suo 内容 Visual Studio 17 的全局默认值