Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 플러터 설치 2022
- 안드로이드 os 구조
- rxjava cold observable
- ar vr 차이
- android ar 개발
- 자바 다형성
- 서비스 쓰레드 차이
- ANR이란
- 클래스
- jvm이란
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
- 스택 큐 차이
- jvm 작동 원리
- 안드로이드 유닛 테스트 예시
- android retrofit login
- 안드로이드 레트로핏 crud
- 서비스 vs 쓰레드
- 안드로이드 라이선스 종류
- 큐 자바 코드
- 스택 자바 코드
- rxjava hot observable
- 2022 플러터 안드로이드 스튜디오
- rxjava disposable
- 객체
- Rxjava Observable
- 멤버변수
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛테스트란
- 2022 플러터 설치
Archives
- Today
- Total
나만을 위한 블로그
[Android] FCM 적용한 앱을 스토어에 등록한 후 java.lang.NullPointerException: Firebase Instance ID component is not present 에러 발생 시 해결법 본문
Android
[Android] FCM 적용한 앱을 스토어에 등록한 후 java.lang.NullPointerException: Firebase Instance ID component is not present 에러 발생 시 해결법
참깨빵위에참깨빵_ 2021. 1. 24. 20:47728x90
반응형
FCM을 붙이고 플레이 스토어에 올린 후 제대로 동작하는지 확인하기 위해 내려받으면, 위와 같은 에러문구를 뿜으면서 앱이 다운되는 경우가 있다.
에러 제목은 Firebase Instance ID라는 요소가 안 보인다는 뜻인데, 이 에러 문구를 검색하면 파이어베이스의 데이터베이스 관련 에러를 해결하는 포스팅 말고는 쓸만한 검색 결과물이 나오지 않는다.
이 에러를 해결하는 방법은 앱 수준 gradle 파일의 buildTypes 부분을 조정하는 것이다.
무슨 말이냐면, 플레이 스토어에 앱을 올리려면 무조건 암호화를 해야 한다. 이 때 proguard를 무조건 적용하게 되는데, release 부분에서 minifyEnabled 속성과 shrinkResources 속성을 둘 다 true로 설정한 경우에 이 포스팅의 제목과 같은 에러가 발생한다.
그리고 이 에러가 발생하는 부분은 FCM 토큰을 생성하는 로직이 있는 부분일 것이다.
여기서 shrinkResources 속성을 없앤 다음 minifyEnabled 속성만 true로 놓으면 된다.
proguard-rules.pro에 썼던 다른 옵션들은 건드리지 않아도 된다.
이렇게 한 다음 apk 파일을 만들어서 실기기에서 테스트해보면 문제되던 부분이 정상적으로 작동하는 걸 볼 수 있다.
단, apk 파일을 사용했기 때문에 카카오 로그인 등 SNS 로그인은 작동하지 않으니 유의하자.
반응형
'Android' 카테고리의 다른 글
[Android] Room DB란? (0) | 2021.01.31 |
---|---|
[Android] Room DB 사용법 (0) | 2021.01.30 |
[Android] 플레이 스토어의 키스토어 분실 시 재설정하는 방법 (0) | 2021.01.18 |
[Android] 리사이클러뷰 아이템 안의 체크박스의 체크 상태를 유지시키는 법 (0) | 2020.12.24 |
[Android] 레트로핏을 이용한 회원가입, 로그인 기능 구현 (with MySQL, PHP) (0) | 2020.12.12 |
Comments