android 如何使用Crashlytics记录非致命异常

ylamdve6  于 2023-04-28  发布在  Android
关注(0)|答案(5)|浏览(180)

我开始在我的项目中使用Firebase(Crashlytics)来跟踪应用程序崩溃。它可以完美地处理崩溃,但我如何记录非致命的崩溃,即捕获的异常。我尝试了Crashlytics.logException(e),但它不起作用。我在 Jmeter 板中看不到任何报告。我看到建议使用FirebaseCrash.report(t)的答案,但在最新版本的Firebase中不存在此类。所以有人知道它是如何完成的吗?
依赖关系:

implementation 'com.google.firebase:firebase-core:16.0.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

t5fffqht

t5fffqht1#

对于新的Firebase Crashlytics,您应该使用recordException(@NonNull Throwable throwable)

...
catch (e: Exception) {
    FirebaseCrashlytics.getInstance().recordException(e)
}
...

下面是firebase文档,说明

bt1cpqcv

bt1cpqcv2#

你可以用
FirebaseCrashlytics.getInstance().recordException(e)
在crashlytics上记录非致命问题

g2ieeal7

g2ieeal73#

确保在AndroidManifest.xml中附加的Application类中添加以下代码-

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        .
        .
        .
        FirebaseApp.initializeApp(this);
        FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
        .
        .
        .
    }
}

然后在预期的地方调用方法-

FirebaseCrashlytics.getInstance().recordException(myException)
p1tboqfb

p1tboqfb4#

模块构建.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'

项目构建.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)

m1m5dgzv

m1m5dgzv5#

除了其他答案之外,还要注意recordException(e)方法不会像文档中提到的那样及时向crashlytics发送异常
Crashlytics将记录的异常批处理在一起,并在应用程序下次启动时发送它们。

相关问题