我的应用程序使用上述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;
}
这里是否有明显的我想念的东西?请帮助
答案 0 :(得分:1)
必须先初始化面料,然后才能在应用程序中使用它。您在呼叫Crashlytics.logException(e)
的地方,是在Fabric.with(this,crashlyticsKit)
行之前完成的吗?如果不是这样,则必须先初始化Fabric,然后才能使用其任何方法。
如果要在多个活动/屏幕中调用Fabric方法,那么最好有一个Application子类,您可以在其中初始化Fabric。
在此处查看入门段落: https://docs.fabric.io/android/fabric/overview.html#manual-setup