我开始在项目中使用Firebase(Crashlytics)来跟踪应用程序崩溃。它非常适合崩溃,但如何记录非致命崩溃(即捕获的异常)。我尝试了Crashlytics.logException(e)
,但没有用。我在仪表板上看不到任何报告。我看到了建议使用FirebaseCrash.report(t)
的答案,但是最新版本的Firebase中不存在此类。那么有人知道它是怎么做的吗?
依存关系
implementation 'com.google.firebase:firebase-core:16.0.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
答案 0 :(得分:28)
对于新的Firebase Crashlytics,您应该使用recordException(@NonNull Throwable throwable)
...
catch (e: Exception) {
FirebaseCrashlytics.getInstance().recordException(e)
}
...
这是firebase documentation所说明的
答案 1 :(得分:6)
您可以使用
Crashlytics.logException(exception);
记录非致命问题的崩溃信息
答案 2 :(得分:1)
确保在您附加到 Application
的 AndroidManifest.xml
类中添加以下代码 -
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
.
.
.
FirebaseApp.initializeApp(this);
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
.
.
.
}
}
然后在预期的地方调用方法 -
FirebaseCrashlytics.getInstance().recordException(myException)
答案 3 :(得分:0)
模块build.gradle
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.gms.google-services'
android {...
dependencies {
implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
implementation 'com.google.firebase:firebase-crashlytics-ktx:17.2.1'
项目build.gradle
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
classpath 'com.google.gms:google-services:4.3.3'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
}
MainActivity.kt
class MainActivity : AppCompatActivity() {
companion object {
lateinit var mCrash: FirebaseCrashlytics
lateinit var instance: MainActivity
private set
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
instance = this
FirebaseApp.initializeApp(instance)
mCrash = FirebaseCrashlytics.getInstance()
val exception = Exception("test Exception")
mCrash.recordException(exception)