상세 컨텐츠

본문 제목

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 해결하기

안드로이드/코틀린, 자바

by 개발익선 2021. 1. 15. 20:00

본문

소스를 복붙 하면서 작업을 하다 보니 이제는 Theme 가지고도 에러가 난다.

 

빠르게 살펴보고 해결해보자.

 

일단 dialog를 show 하다가 에러가 났다.

콘솔로 내용을 쭈우욱 훑었다.

 

음..  이 액티비티(또는 그 아래 연관 화면)에서는 'Theme.AppCompat'을 사용하라고 하네..?

여기서는 다이얼로그를 띄우려고 했으니.. 다이얼로그 관련 내용을 손봐줘야지 ㅎㅎ

 

표면적으로는 위 코드 줄을 설명 해줬지만, 더 깊게 들어가 봐야 할 것 같다.

 

생성된 AlertDialog를 Ctrl+B로 살펴보았는데 확장이 AppCompatDialog에서 되었다.

그래서 AndroidManifest.xml로 당장에 달려가서 보았는데

내 테마는 AppCompat 테마가 아닌 것이었다.. 눈치챘다 해결하러 가자.

 

해결 방법!!

 

1. import 다이얼로그를 appcompat이 아닌 일반으로 변경해준다.

import androidx.appcompat.app.AlertDialog; -> import android.app.AlertDialog;

 

2. 테마를 appcompat 테마로 바꿔준다.

 

나는 1번을 선택해서 해결했다.

왜냐하면 alertDialog를 복붙 하기 전에 import android.app.AlertDialog; 를 이미 사용 중이었음..(import를 잘못시켰었음 ㅋㅋㅋㅋ)

 

그래서 테마도 그대로 사용하면서 깔끔하게 해결하였다.

알고 보면 어려운 오류가 아니었는데 시간을 꽤 잡아먹었다...

 

 

포스팅을 읽고,

큰 도움이 되셨다면, 공감(♥)을 던져 주세요!

큰 힘이 되어 다음 포스팅 시에도 파이팅하겠습니다.

관련글 더보기

댓글 영역