KitKat 上的 Android Firebase 身份验证崩溃

ZN1*_*123 0 authentication android firebase firebase-authentication

我使用 Firebase Anonymous Auth 的应用程序在 API19 (4.4) 上崩溃。

E/AndroidRuntime: FATAL EXCEPTION: main
          Process: com.author.example, PID: 2191
          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.author.example/com.author.example.MainActivity}: java.lang.NullPointerException
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
              at android.app.ActivityThread.access$800(ActivityThread.java:135)
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
              at android.os.Handler.dispatchMessage(Handler.java:102)
              at android.os.Looper.loop(Looper.java:136)
              at android.app.ActivityThread.main(ActivityThread.java:5017)
              at java.lang.reflect.Method.invokeNative(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:515)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
              at dalvik.system.NativeStart.main(Native Method)
           Caused by: java.lang.NullPointerException
              at com.google.android.gms.internal.zzdvv.zzb(Unknown Source)
              at com.google.android.gms.internal.zzdwc.zza(Unknown Source)
              at com.google.firebase.auth.FirebaseAuth.signInAnonymously(Unknown Source)
              at com.author.example.MainActivity.onCreate(MainActivity.java:64)
              at android.app.Activity.performCreate(Activity.java:5231)
              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
              at android.app.ActivityThread.access$800(ActivityThread.java:135) 
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
              at android.os.Handler.dispatchMessage(Handler.java:102) 
              at android.os.Looper.loop(Looper.java:136) 
              at android.app.ActivityThread.main(ActivityThread.java:5017) 
              at java.lang.reflect.Method.invokeNative(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:515) 
Run Code Online (Sandbox Code Playgroud)

已针对 API 15 和 16 报告了相同的问题,但尚未找到解决方案。 Firebase Auth 在 API 15 和 16 上崩溃,调用 FirebaseAuth.signInAnonymously() 时出现 NullPointerException

以下是相关的 gradle 依赖项:

compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.firebaseui:firebase-ui-database:1.0.1'
compile 'com.android.support:appcompat-v7:27.0.2'
compile 'com.android.support:design:27.0.2'
compile 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
    transitive = true
}
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.google.firebase:firebase-messaging:11.8.0'
compile 'com.google.maps.android:android-maps-utils:0.5'
compile 'com.google.android.gms:play-services-maps:11.8.0'
Run Code Online (Sandbox Code Playgroud)

任何想法或者是我唯一提高最低支持 API 的方法?

Bob*_*der 6

您正在测试的设备或模拟器未安装与 Firebase SDK 11.8.0 兼容的 Google Play 服务版本。在应用程序初始化时,logcat 将包含以下消息:

W/GooglePlayServicesUtil: Google Play services out of date
Run Code Online (Sandbox Code Playgroud)

如果错误发生在真机上,您需要更新设备上的 Google Play 服务。如果错误发生在模拟器上,您需要使用 SDK 管理器下载最新的模拟器图像并选择一个包含 Google API 的图像。

因为 Firebase 需要 Google Play 服务,所以最好使用GoogleApiAvailability来确认它是否可用,如文档所述