Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Archives
Today
Total
관리 메뉴

Tason

[Android Studio] IllegalStateException: This Activity already has an action bar supplied by the window decor. 에러 본문

Tool/Android Studio

[Android Studio] IllegalStateException: This Activity already has an action bar supplied by the window decor. 에러

Yan g 2019. 12. 20. 15:36

앱을 개발하던 중, 메인화면에 Navigation Drawer Activity를 사용하고 싶어서

안드로이드에서 제공하는 네비게이션 드로어의 양식을 기존에 개발 중이던 앱에 그대로 가져오기로 했습니다.


안드로이드에서 제공하는 네비게이션 드로어 양식의 Activity를 선택하여 새로운 프로젝트를 생성하고,

기존의 앱에 Java 클래스와 xml파일을 그대로 가져온 후, 그래들을 설정하고, 메니페스트에서 새로 가져온 

네비게이션 드로어 액티비티가 시작 액티비티로 동작할 수 있게 바꿔주어 기존 앱의 메인화면을 변경하려 했습니다. 


허나 다음과 같은 에러가 발생했습니다.

(빨간색 글씨 세 번째 줄 java.lang.RuntimeException: Unable to .... )에러의 이름을 확인해보면 

RuntimeException - IllegalStateException에러가 발생했음을 알 수 있습니다.


 해당 오류에 따른 설명을 오라클 홈페이지에서 발견했습니다.


해석해보면 메소드가 부적절하게 호출되어 Java 환경이나 Java 응용프로그램이 요청 된 작업을 수행하기에 

적합하지 않다는 것인데 에러의 내용 자체는 역시나 피상적입니다. 

이어지는 내용을 확인해보면 조금 더 확실하게 문제점을 파악할 수 있습니다.

( IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. ) 


Navigation Drawer에서는 Toolbar를 사용하는데 기본적으로 별개의 설정이 없으면 안드로이드에서는 

Actionbar(앱 실행 시, 화면 상단에 앱 제목을 표시해주는 막대)를 사용합니다. 

두 개의 설정이 중복되어 발생한 오류입니다. 툴바를 사용하려면 액션바의 설정을 off로 변경하라고 친절하게 

제시해주고 있습니다. 기존의 제 앱에서는 이미 액션바가 사용중이었고, 네비게이션 드로어 액티비티의 

내용을 손쉽게 가져오는 바람에 툴바가 사용된다는 것을 인지하지 못하고 있었습니다. 



Trouble Shooting

매니페스트에서 다음과 같이 설정하여 오류를 해결합니다.

NoActionBar 설정


Comments