【问题标题】:FirebaseApp.initializeApp(this) Crashes NullPointerExceptionFirebaseApp.initializeApp(this) 崩溃 NullPointerException
【发布时间】:2022-07-01 07:29:34
【问题描述】:

我的应用类如下:

override fun onCreate() {
    super.onCreate()
    FirebaseApp.initializeApp(this)
    FirebaseCrashlytics.getInstance()
}

FirebaseApp.initializeApp(this) 在除我们之外的许多设备上崩溃(我们在 20 多个设备上进行了测试,并且运行良好)

崩溃报告取自 Google Play 控制台,其堆栈跟踪为:

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6737)
  at android.app.ActivityThread.access$2000 (ActivityThread.java:273)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2020)
  at android.os.Handler.dispatchMessage (Handler.java:112)
  at android.os.Looper.loop (Looper.java:216)
  at android.app.ActivityThread.main (ActivityThread.java:7625)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:524)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:987)
Caused by: java.lang.NullPointerException: 
  at androidx.core.os.UserManagerCompat.isUserUnlocked (UserManagerCompat.java:42)
  at com.google.firebase.FirebaseApp.initializeAllApis (FirebaseApp.java:573)
  at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:302)
  at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:266)
  at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:251)
  at com.superapp.MyApplication.onCreate (MyApplication.kt:92)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1162)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6717)
  at android.app.ActivityThread.access$2000 (ActivityThread.java:273)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2020)
  at android.os.Handler.dispatchMessage (Handler.java:112)
  at android.os.Looper.loop (Looper.java:216)
  at android.app.ActivityThread.main (ActivityThread.java:7625)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:524)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:987)

项目级build.gradle:

repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url 'https://plugins.gradle.org/m2/' }
        maven {
            url 'https://developer.huawei.com/repo/'
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
        classpath "com.google.gms:google-services:4.3.3"
        classpath "com.google.firebase:firebase-crashlytics-gradle:2.4.1"
        classpath "com.huawei.agconnect:agcp:1.6.0.300"
        classpath "de.timfreiheit.resourceplaceholders:placeholders:0.3"
        classpath "com.google.firebase:firebase-appdistribution-gradle:1.3.1"
        classpath "org.jacoco:org.jacoco.core:0.8.7"
    }

app模块级build.gradle:

// at the top
apply plugin: "com.android.application"
apply plugin: "com.google.firebase.crashlytics"
apply plugin: "de.timfreiheit.resourceplaceholders"
apply plugin: "com.google.firebase.appdistribution"
apply plugin: "com.huawei.agconnect"

// at the bottom
apply plugin: "com.google.gms.google-services"

崩溃发生在 API 级别 28、29、30、31 和 32

这是 Google 的问题还是我们做错了什么?

【问题讨论】:

    标签: android firebase crash crashlytics


    【解决方案1】:

    这可能是 UserManagerCompat 中的一个错误,但对于大多数应用程序而言,通常不需要调用 init,这可能会缓解您的问题:

    对于绝大多数应用,FirebaseInitProvider 将通过应用的 google-services.json 文件中包含的数据处理其配置为使用的默认项目的 Firebase 初始化。此 ContentProvider 在使用 Gradle 构建时默认合并到应用的清单中,并在应用启动时自动运行。在这种情况下,不需要额外的代码行。

    https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      • 2021-10-29
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      相关资源
      最近更新 更多