FirebaseAuth.signInWithCredential导致我的Flatter应用程序在调用时崩溃

FirebaseAuth.signInWithCredential导致我的Flatter应用程序在调用时崩溃,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,我对弗利特和Firebase还不熟悉。我正在尝试使用Firebase设置电话身份验证。我在Firebase上创建了一个项目,我的Flitter应用程序已注册 当我运行FirebaseAuth.instance.signInWithCredential(凭据)时,我的应用程序不断崩溃 以下是错误输出: W/BiChannelGoogleApi(23681):[FirebaseAuth:]GetGoogleAPI方法() 返回的Gms:com.google.firebase.auth.api.int

我对弗利特和Firebase还不熟悉。我正在尝试使用Firebase设置电话身份验证。我在Firebase上创建了一个项目,我的Flitter应用程序已注册

当我运行FirebaseAuth.instance.signInWithCredential(凭据)时,我的应用程序不断崩溃

以下是错误输出:

W/BiChannelGoogleApi(23681):[FirebaseAuth:]GetGoogleAPI方法() 返回的Gms:com.google.firebase.auth.api.internal。zzak@30ab46a E/JavaBinder(23681):***未捕获的远程异常!(例外情况如下: 尚未跨流程支持。)E/JavaBinder(23681): java.lang.NoClassDefFoundError:解析失败: Landroid/support/v4/util/ArrayMap;E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzam.zzc(未知来源:22) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzam.zzde(未知来源:17) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzam.zzdd(未知来源:8) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzan.zzdf(未知来源:1) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzm.isAnonymous(未知来源:47) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzat.zzi(未知来源:57) E/JavaBinder(23681):在 com.google.firebase.auth.internal.zzat.zzg(未知来源:10) E/JavaBinder(23681):在 com.google.firebase.auth.FirebaseAuth.zza(未知来源:62) E/JavaBinder(23681):在 com.google.firebase.auth.FirebaseAuth$zzb.zza(未知来源:5) E/JavaBinder(23681):在 com.google.firebase.auth.api.internal.zzcv.zzdx(未知来源:14) E/JavaBinder(23681):在 com.google.firebase.auth.api.internal.zzen.zzen(未知来源:35) E/JavaBinder(23681):在 com.google.firebase.auth.api.internal.zzen.zza(未知来源:41) E/JavaBinder(23681):在 com.google.firebase.auth.api.internal.zzep.zza(未知来源:9) E/JavaBinder(23681):在 com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(未知 资料来源:9)E/JavaBinder(23681):见 com.google.android.gms.internal.firebase_auth.zza.onTransact(未知) 资料来源:13)E/JavaBinder(23681):at android.os.Binder.execTransactionInternal(Binder.java:1021) E/JavaBinder(23681):在 android.os.Binder.execTransact(Binder.java:994)E/JavaBinder(23681): 原因:java.lang.ClassNotFoundException:未找到类 路径为“android.support.v4.util.ArrayMap”,路径为:DexPathList[[zip文件…”


我期待Firebase用户返回并成功通过身份验证。看起来Firebase更新了他们的身份验证,因为教程中使用的许多方法都不存在了。

如果其他人遇到此问题,这是因为在开发Flatter应用程序时,Android Studio提示了一个新版本n个颤振可用,我点击了升级。但需要在终端中执行手动颤振升级,并将Kotlin升级到最新版本

我为解决此问题所采取的步骤:

更新了以下文件:

  • project\u folder/android/build.gradle。将“ext.kotlin\u version='1.2.71'”更改为“ext.kotlin\u version='1.3.50'”
  • project\u folder/android/gradle/gradle wrapper.properties。将distributionUrl设置为最新的gradle,“distributionUrl”=https://services.gradle.org/distributions/gradle-5.4.1-all.zip“。Android Studio通知使用最新的gradle,并说明在何处进行更改

  • 将以下两行添加到project_folder/android/gradle.properties:

    android.useAndroidX=true
    android.enableJetifier=true
    
  • 然后进入重构>迁移到AndroidX。等待重构完成,然后在终端中运行底部命令

    要在终端(Mac OS)中运行的命令:

  • $颤振升级
  • $颤振酒吧升级
  • $颤振清洁
  • 我就是这么做的。现在当我跑步的时候

        await FirebaseAuth.instance
        .signInWithCredential(credential).then((authResult){
          print(authResult.user);})
    
    我得到一个返回的AuthResult对象,其中包含FireBaseUser对象。以下是输出:

    FirebaseUser({uid: yZXXXXXXXXXXXX, isAnonymous: false, phoneNumber: +18005558989, ...})
    
    • 在Android Studio上打开您的颤振项目
    • 然后,更新所有gradle和kotlin并迁移kotlin
    • 然后,迁移到Android X
    • 然后,打开颤振项目
    • 颤振升级
    • 颤振酒吧升级
    • 扑通

    尝试将您的android项目迁移到androidX@PraneethDhanushkaFernando-我刚刚尝试迁移到AndroidX.Refactor>Migrate to AndroidX。它说项目中没有使用;调用FirebaseAuth.instance.signInWithCredential(凭据)应用程序仍在崩溃。它工作了几个小时,然后又失败了。刚刚更新到AndroidX。我不得不修改android/gradle.properties并添加这两行:“代码”
    FirebaseUser({uid: yZXXXXXXXXXXXX, isAnonymous: false, phoneNumber: +18005558989, ...})