Android Crashlytics.logException方法引发非法状态异常。无法收集某些活动的非致命问题

Android Crashlytics.logException方法引发非法状态异常。无法收集某些活动的非致命问题,android,crashlytics,twitter-fabric,crashlytics-android,Android,Crashlytics,Twitter Fabric,Crashlytics Android,我的应用程序使用了上述Firebase Crashlytics功能,但我遇到了一个奇怪的问题。最近,我在我的应用程序的playstore中看到了一个例外(见附图)。 该位置的相应代码如下所示: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my_sites)

我的应用程序使用了上述Firebase Crashlytics功能,但我遇到了一个奇怪的问题。最近,我在我的应用程序的playstore中看到了一个例外(见附图)。 该位置的相应代码如下所示:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my_sites)
        setSupportActionBar(findViewById(R.id.my_toolbar))

        init()
        try{
            loadSitesSetAdapter()
        } catch (e:NullPointerException){
            Crashlytics.logException(e) // this is line 55 as crash
            finish()
//            startActivity(Intent(this,MainActivity::class.java))
        }
// Crashlytics
implementation('com.crashlytics.sdk.android:crashlytics:2.9.8@aar') {
    transitive = true;
}
在我的应用程序中,结构初始化如下所示:

我拥有的应用程序级渐变:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        // Disable fabric build ID generation for debug builds
        ext.enableCrashlytics = false
    }
}
在主要活动中,我有以下几点:

val crashlyticsKit = Crashlytics.Builder()
                                    .core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
                                    .build();

    // Initialize Fabric with the debug-disabled crashlytics.
    Fabric.with(this,crashlyticsKit)
最后但并非最不重要的是,我在gradle文件中的依赖关系如下:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my_sites)
        setSupportActionBar(findViewById(R.id.my_toolbar))

        init()
        try{
            loadSitesSetAdapter()
        } catch (e:NullPointerException){
            Crashlytics.logException(e) // this is line 55 as crash
            finish()
//            startActivity(Intent(this,MainActivity::class.java))
        }
// Crashlytics
implementation('com.crashlytics.sdk.android:crashlytics:2.9.8@aar') {
    transitive = true;
}

这里有什么明显的我遗漏的吗?请帮助

在应用程序中使用结构之前,它必须初始化。在调用
Crashlytics.logException(e)
的地方,是在
Fabric.with(this,crashlyticsKit)
行之前完成的吗?如果没有,则必须先初始化结构,然后才能使用其任何方法

如果您要在多个活动/屏幕中调用Fabric方法,那么最好有一个可以初始化Fabric的应用程序子类

请参见此处的“入门”一段:

谢谢。我只是在主要活动中这样做。我不知道每个活动都需要这样做。是的,如果你想在多个活动中使用它,只需创建一个应用程序子类,并在该类的onCreate方法中初始化它。这就是让人困惑的地方:我检查了这个页面:在第2点,如果你只想在一个活动中使用它,它会说“在任何一个活动中”,很好。但是对于多个屏幕,您应该将其放在一个应用程序子类中。如果没有,那么您只需将它放在每个活动的onCreate中即可。