안드로이드 개발 팁 #76 - Firebase의 Crashlytics 적용 방법

Firebase의 Crashlytics 적용 방법

No. 76
2024. 07. 02 (화) | Written by @dorian-mobileapp

안드로이드 앱에 Firebase의 Crashlytics를 적용하는 과정에서 시행착오가 있었습니다. 이에 과정을 처음부터 차근차근 정리해 봅니다.

사전 조건

  • 파이어베이스 사이트에서 프로젝트 생성했음
  • 프로젝트 설정 후 생성된 google-services.json 파일을 모듈 폴더에 복사

프로젝트 최상단의 build.gradle 파일 수정

dependencies 블록에 다음과 같이 Firebase Crashlytics 플러그인 추가

classpath 'com.android.tools.build:gradle:8.3.0'
classpath 'com.google.gms:google-services:4.4.2'
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.2'

모듈의 build.gradle 파일 수정

위에서 언급한 플러그인 추가

apply plugin: 'com.google.firebase.crashlytics'

android 블록에 모듈의 패키지 값을 갖는 namespace 추가
(namespace를 명시적으로 넣어야 한다는 빌드 오류에 의해 추가)

android {
    namespace '모듈의 패키지 값'
}

자바 버전 수정 (1.8에서 17로)

compileOptions {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
    jvmTarget = '17'
}

dependencies 블록에 crashlytics 라이브러리 추가

implementation 'com.google.firebase:firebase-bom:32.2.0'
implementation 'com.google.firebase:firebase-crashlytics'
'com.google.firebase:firebase-analytics'

gradle.properties 파일에 아래 코드 추가

android.nonFinalResIds=false

Java 17부터는 final 키워드를 사용할 수 없어 리소스 ID 값들은 상수가 아닌 변수임. 이로 인해 switch 문의 각 case에 들어간 리소스 ID는 모두 오류로 간주 됨. 이를 피하기 위해 nonFinalResIds 값을 false로 설정함.

Application 상속 받는 클래스의 onCreate() 메소드에 크래쉬 수집 설정

FirebaseApp.initializeApp(this);
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG);

BuildConfig.DEBUG는 디버그 모드인지를 나타내는 상수 (자세한 내용은 다음 포스트 작성 예정)


지난 안드로이드 개발 팁


Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Sort:  

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 58248.35
ETH 3136.18
USDT 1.00
SBD 2.36