programing

충돌 분석을 사용하여 치명적이지 않은 예외를 기록하는 방법

telebox 2023. 7. 1. 08:31
반응형

충돌 분석을 사용하여 치명적이지 않은 예외를 기록하는 방법

저는 앱 충돌을 추적하기 위해 프로젝트에서 Firebase(크래시 분석)를 사용하기 시작했습니다.충돌과 완벽하게 작동하지만 치명적이지 않은 충돌, 즉 포착된 예외를 기록하려면 어떻게 해야 합니까?나는 노력했다.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'

enter image description here

새로운 Firebase Crashlytics와 함께 사용해야 합니다.recordException(@NonNull Throwable throwable)

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

다음은 다음과 같은 소방 기지 문서입니다.

사용할 수 있습니다.

FirebaseCrashlytics.getInstance().recordException(e)

충돌 분석에 치명적이지 않은 문제를 기록하다

다음 코드를 추가해야 합니다.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)

모듈 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'

프로젝트 빌드.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'
}

기본 활동.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)

enter image description here

다른 대답들에 덧붙여, 주의하세요.recordException(e)메소드는 문서에 언급된 대로 충돌 분석에 예외를 제때 보내지 않습니다.

충돌 분석 배치는 예외를 함께 기록하고 다음 번 앱을 시작할 때 이를 보냅니다.

언급URL : https://stackoverflow.com/questions/51714355/how-to-log-non-fatal-exceptions-with-crashlytics

반응형