我的应用程序使用上面的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))
}
Fabric应用程序初始化如下:
在应用程序级别gradle我有:
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文件中的依赖关系如下:
// Crashlytics
implementation('com.crashlytics.sdk.android:crashlytics:2.9.8@aar') {
transitive = true;
}
我有什么明显的遗失吗?请帮忙
Fabric必须在可以在应用程序中使用之前进行初始化。你在哪里调用Crashlytics.logException(e)
,那是在Fabric.with(this,crashlyticsKit)
线之前完成的吗?如果没有,则必须先初始化Fabric,然后才能使用其任何方法。
如果您要在多个活动/屏幕中调用Fabric方法,那么最好有一个Application子类,您可以在其中初始化Fabric。
请参阅此处的入门段落:https://docs.fabric.io/android/fabric/overview.html#manual-setup