Firebase.remoteConfig => 因 IllegalStateException 崩溃(但仅适用于一小部分用户)

问题描述 投票:0回答:1

我在我的应用程序中使用 firebase 远程配置。使用此调用时,我遇到罕见的 IllegalStateException 崩溃(访问

remoteConfig
实例时发生崩溃):

Firebase.remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
            when (task.isSuccessful) {
                true -> Log.d(APP_TAG, "Config params updated: ${task.result}")
                false -> Log.e(APP_TAG, "Config params loading ERROR!")
            }
        }

这是堆栈跟踪:

Caused by java.lang.IllegalStateException:
  at com.google.firebase.FirebaseApp.getInstance (FirebaseApp.java:179)
  at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance (FirebaseRemoteConfig.java:81)
  at com.google.firebase.remoteconfig.RemoteConfigKt.getRemoteConfig (RemoteConfig.kt:32)
  at myapp.mypackage.FbRemoteConfig.fetchFreshValues (FbRemoteConfig.kt:83)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:4981)

无法在我的设备上重现,但效果就像魅力一样,100 倍中的 100 倍,持续数天和数周。

但是,不知何故,它偶尔会在其他人的设备上崩溃,但可能只适用于约 1-2% 的用户。我无法指出原因。

我在谷歌上搜索的典型建议提到在应用程序类中调用

FirebaseApp.initializeApp(this)
,但这似乎不正确 - 它甚至没有在文档中提到,在任何教程中都没有提到,并且根据最新的 stackoverlow 帖子,没有必要2024 年不再初始化 Firebase 以使用远程配置。此外,它对我和绝大多数用户来说都很好......所以很可能事实并非如此。

但除此之外,我找不到任何东西......为什么我会得到这些神秘的、罕见的 IllegalStateException?

这是我的应用程序级别 build.gradle:

apply plugin: 'com.google.gms.google-services'
...
dependencies {
    ...
    implementation(platform("com.google.firebase:firebase-bom:33.4.0"))
    implementation("com.google.firebase:firebase-config")
    implementation("com.google.firebase:firebase-analytics")
}

这是我的项目级别的buildgradle:

...
dependencies {
    ...
    classpath 'com.google.gms:google-services:4.4.2'
}
android firebase kotlin firebase-remote-config
1个回答
0
投票

更安全的可能解决方法是添加一个条件来检查您的 Activity 或片段是否还活着。如果您使用片段生命周期回调(例如 onAttach() 和 onDetach()),这一点尤其重要。

© www.soinside.com 2019 - 2024. All rights reserved.