개발 공부/Android / / 2022. 9. 1. 18:17

[Android Kotlin] Firebase Crashlytics적용하기

Firebase에서 Crashlytics를 이렇게 소개하고 있다.

"Firebase Crashlytics는 가벼운 실시간 오류 보고 도구로 앱 품질을 저하하는 안정성 문제를 추적하고 우선순위를 지정하고 문제를 해결하는 데 도움이 됩니다. Crashlytics는 비정상 종료를 지능적으로 그룹화하고 이러한 비정상 종료를 유발하는 상황을 강조하여 보여주므로 문제해결 시간이 절약됩니다.

 

 

1. SDK 추가 

- gradle(Project)

기존에 plugin만 있는데 아래의 코드를 추가해준다.

buildscript {
    dependencies {
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
    }
}

적용 예 

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    dependencies {
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
    }
}


plugins {
    id 'com.android.application' version '7.1.2' apply false
    id 'com.android.library' version '7.1.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
    id 'com.google.gms.google-services' version '4.3.10' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

- gradle(Module)

plugins에는 아래 코드 추가 

 id 'com.google.firebase.crashlytics'//crashlytics

적용 예 

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'
    id 'com.google.gms.google-services' //구글서비스 추가(firebase 앱 추가시에 넣음)
    id 'com.google.firebase.crashlytics'//crashlytics
}

dependencies에 추가 

//firebase crashlytics
    implementation 'com.google.firebase:firebase-crashlytics-ktx'
    implementation 'com.google.firebase:firebase-analytics-ktx'

2. 비정상 종료 강제로 적용하여 설정

버튼을 눌러서 강제 종료를 일으키도록 하였다. ClickListener안에 아래의 코드를 넣어준다 

throw RuntimeException("Test Crash")  // Force a crash

적용 예 

override fun onClick(p0: View?) {
        when(p0!!.id){
            R.id.ll_settings_change_pass -> { //비밀번호 변경
                val intent = Intent(this,ChangeAppPassActivity::class.java)
                startActivity(intent)
            }

            R.id.ll_settings_export_csv -> {
                exportDatabaseToCSVFile()
            }

            R.id.ll_settings_developer -> { //개발자에게 메일 보내기
                sendEmailToDeveloper(this,"개발자에게 문의 메일보내기")
            }
            R.id.ll_settings_notice -> {
                throw RuntimeException("Test Crash")
            }
        }

 

앱 감지 및 비정상 종료 감지 확인 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유