커뮤니케이션 문제가 발생했었다. QA 프리징 기간에 코드를 수정하여 develop 브랜치에 push 를 했는데, 정기배포에 해당 커밋내용이 빠져버렸다. 역시나 이슈가 발생했다.
그래서 수정한 코드를 재반영한 긴급배포를 진행하고, Crashlitics 을 통해 모니터링하는 도중에 위와 같은 Crash 가 발생했다.
You need to use a Theme.AppCompat theme (or descendant) with this activity.
위 에러는 말 그대로 M Theme.AppCompat 으로 해당 Activity 를 변경해서 사용하라는 말이다.
<activity
android:name=".xxxxxActivity"
android:theme="@style/Theme.AppCompat"
>
</activity>
'You need to use a Theme.AppCompat theme (or descendant) with this activity.'
Activity onCreate() 실행 도중에 앱이 죽어버렸다.
Error Tracking 을 확인해보면, 저 에러가 어디서 발생하는지 확인할 수 있다.
내가 겪은 Crash 는 Activity 에 원래 4대 컴포넌트 중 하나인 Activity() 를 상속받아서 사용했다가, AppCompat 을 상속받은 결제Activity 를 상속받게 코드를 수정했다가 발생했다.
위 에러 이슈 해결방법은 여러가지다.
- Manifest.xml 내부에 있는 Theme.Appcompat 으로 변경하기 (불가. Theme 를 고정으로 사용하고 있었다.)
- 본래 Activity() 상속하는 코드로 원복시키기
- AppCompat 을 상속받고 있는 결제Activity 로직 수정
사실.. 레거시 코드다보니, 이런 이슈가 발생한게 아닌가 싶다.
내가 겪은 이슈 말고도
You need to use a Theme.AppCompat theme (or descendant) with this activity.
위와 같은 에러가 발생하는 Case 가 있었다.
1. AlertDialog 를 app.AlertDialog 로 Import 를 한 게 아닌, appcompat.AlertDialog 을 사용했을 경우,
2. Manifest.xml 에서 수정이 필요한 SplashScreen 이슈
등등..
확인해보고 키워드 별 검색해서 방법들을 알아가보면 좋을 것 같다.