관리 메뉴

나만을 위한 블로그

[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:47
728x90
반응형

FCM을 붙이고 플레이 스토어에 올린 후 제대로 동작하는지 확인하기 위해 내려받으면, 위와 같은 에러문구를 뿜으면서 앱이 다운되는 경우가 있다.

에러 제목은 Firebase Instance ID라는 요소가 안 보인다는 뜻인데, 이 에러 문구를 검색하면 파이어베이스의 데이터베이스 관련 에러를 해결하는 포스팅 말고는 쓸만한 검색 결과물이 나오지 않는다.

 

이 에러를 해결하는 방법은 앱 수준 gradle 파일의 buildTypes 부분을 조정하는 것이다.

무슨 말이냐면, 플레이 스토어에 앱을 올리려면 무조건 암호화를 해야 한다. 이 때 proguard를 무조건 적용하게 되는데, release 부분에서 minifyEnabled 속성과 shrinkResources 속성을 둘 다 true로 설정한 경우에 이 포스팅의 제목과 같은 에러가 발생한다.

그리고 이 에러가 발생하는 부분은 FCM 토큰을 생성하는 로직이 있는 부분일 것이다.

 

여기서 shrinkResources 속성을 없앤 다음 minifyEnabled 속성만 true로 놓으면 된다.

proguard-rules.pro에 썼던 다른 옵션들은 건드리지 않아도 된다.

이렇게 한 다음 apk 파일을 만들어서 실기기에서 테스트해보면 문제되던 부분이 정상적으로 작동하는 걸 볼 수 있다.

단, apk 파일을 사용했기 때문에 카카오 로그인 등 SNS 로그인은 작동하지 않으니 유의하자.

반응형
Comments