Flutter App在Android上因Firebase Firestore的匿名登录而崩溃

时间:2019-11-15 17:04:55

标签: android firebase flutter dart google-cloud-firestore

正如标题所述,我正在尝试为我的Flutter应用程序使用Firebase firestore设置匿名登录,但是该崩溃在Android上崩溃。在iOS上运行正常。

我使用firebase控制台中的向导为我的应用设置了Firebase,并在配置android应用时使用了所有建议的版本号。

我在android / build.gradle文件中的依赖关系如下:

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.2'
    }

并在android / app / build.gradle文件中设置以下内容:

minSdkVersion 21 targetSdkVersion 28

我还下载了google-services.json文件并将其放置到路径android / app

我知道我已连接到Firebase,因为我设置了Google Analytics(分析),并且可以在Analytics(分析)面板中看到自己是活跃用户

这是我为匿名登录设置的内容:

在“ auth.dart”文件中:

import 'package:firebase_auth/firebase_auth.dart';

class AuthService {
      // this instance allows us to communicate with Firebase in the backend
  final FirebaseAuth _auth = FirebaseAuth.instance;
  // sign in anon
  Future signInAnon() async {
    try {
      AuthResult result = await _auth.signInAnonymously();
      FirebaseUser user = result.user;
      return user;
    } catch (e) {
      print(e.toString());
      return null;
    }
  }

以及在SignIn小部件中,我在其中使用了一个调用anonSignIn方法的按钮:

GestureDetector(
                  onTap: () async {
                    dynamic result = await _auth.signInAnon();
                    if (result == null) {
                      print('error signing in');
                    } else {
                      print('anon user signed in');
                      print(result);
                    }
                  },
                  child: Text(
                    'Skip for now >',
                    style: TextStyle(color: eigthColor),
                  ),
                ),

该应用在调试控制台中为iOS打印正确的结果,但是当在模拟器,真实设备(三星)上的Android上运行时,按下按钮且调试中显示的所有内容均会退出应用控制台在下面。我是开发新手。请帮忙!

** W / BiChannelGoogleApi(11081):[FirebaseAuth:] getGoogleApiForMethod()返回了Gms:com.google.firebase.auth.api.internal.zzak@c8b9c14 E / AndroidRuntime(11081):进程:com.tsf.freshee_scratch,PID:11081 E / AndroidRuntime(11081):java.lang.NoClassDefFoundError:无法解决以下问题:Landroid / support / v4 / util / ArrayMap; E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzam.zzc(未知来源:22) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzam.zzde(未知来源:17) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzam.zzdd(未知来源:8) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzan.zzdf(未知来源:1) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzm.isAnonymous(未知来源:47) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzat.zzi(未知来源:57) E / AndroidRuntime(11081):位于com.google.firebase.auth.internal.zzat.zzg(未知来源:10) E / AndroidRuntime(11081):位于com.google.firebase.auth.FirebaseAuth.zza(未知来源:62) E / AndroidRuntime(11081):位于com.google.firebase.auth.FirebaseAuth $ zzb.zza(未知来源:5) E / AndroidRuntime(11081):位于com.google.firebase.auth.api.internal.zzcl.zzdx(未知来源:13) E / AndroidRuntime(11081):位于com.google.firebase.auth.api.internal.zzen.zzen(未知来源:35) E / AndroidRuntime(11081):位于com.google.firebase.auth.api.internal.zzen.zza(未知来源:41) E / AndroidRuntime(11081):位于com.google.firebase.auth.api.internal.zzep.zza(未知来源:9) E / AndroidRuntime(11081):位于com.google.firebase.auth.api.internal.zzdx.dispatchTransaction(未知来源:9) E / AndroidRuntime(11081):位于com.google.android.gms.internal.firebase_auth.zza.onTransact(未知来源:13) E / AndroidRuntime(11081):位于android.os.Binder.execTransact(Binder.java:739) E / AndroidRuntime(11081):由以下原因引起:java.lang.ClassNotFoundException:在路径:DexPathList [[zip file“ /data/app/com.tsf]上找不到类” android.support.v4.util.ArrayMap“。 freshee_scratch-RyjASMTcDx7DTMAHwjdqeg == / base.apk“],nativeLibraryDirectories = [/ data / app / com.tsf.freshee_scratch-RyjASMTcDx7DTMAHwjdqeg == / lib / arm64,/data/app/y_dsh=eqwddwsh_desh_eshde=ebase_apsh_desh_eshfrdjwegds=ebase_aps_dsh_eshdege=ebase_apsh_esh=dbase_apkde=ebase_apkde=sbase.apk”] .apk!/ lib / arm64-v8a,/ system / lib64,/ system / vendor / lib64]] E / AndroidRuntime(11081):位于dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134) E / AndroidRuntime(11081):位于java.lang.ClassLoader.loadClass(ClassLoader.java:379) E / AndroidRuntime(11081):位于java.lang.ClassLoader.loadClass(ClassLoader.java:312) E / AndroidRuntime(11081):...还有16个 D / ViewRootImpl @ c13a6a1MainActivity:MSG_WINDOW_FOCUS_CHANGED 0 1 D / InputMethodManager(11081):prepareNavigationBarInfo()DecorView @ 5990a33 [MainActivity] D / InputMethodManager(11081):getNavigationBarColor()-352319669 I /进程(11081):正在发送信号。 PID:11081 SIG:9 与设备的连接断开。 退出(sigterm) **

0 个答案:

没有答案